특정 이벤트가 발생했을 때 사용자 모두에게 같은 이벤트를 보내야 할 때가 있습니다. 대표적으로 어떤 사용자가 메시지를 전송했을 때를 들 수 있겠네요. 그런 경우, 모든 사용자에게 같은 이벤트를 브로드캐스트하는 방법에 대해 알아봅시다.
socket.on('chat message', (msg) => {
io.emit('chat message', msg);
});
바로 이전 편에서 만나 본 코드입니다. io.emit(event, property)
은 해당 이벤트를 보낸 쪽을 포함한 모두에게 해당 이벤트와 프로퍼티를 전달합니다.
io.on('connection', (socket) => {
socket.broadcast.emit('hi');
});
다만, socket을 발생시킨 쪽을 제외한 나머지에게만 브로드캐스트를 하고 싶을 때는 socket 객체의 broadcast
flag를 사용합니다.