join()
함수를 호출하면 된다.io.on('connection', socket => {
socket.join('some room');
});
in
혹은 to
함수를 호출하면 된다.io.to('some room').emit('some event');
io.to('room1').to('room2').to('room3').emit('some event');
-주의할 점: 이때 집합의 합집합 연산이 적용된다.
즉, room1과 room2 동시에 존재하는 소켓일지라도, 한번의 이벤트만을 받는다.
join()
과 마찬가지로 leave()
메서드를 호출하면 된다.Socket.IO
의 모든 소켓은 랜덤이고, 추측불가능하며, 고유한 식별자인 아이디로 구분된다.
io.on("connection", socket => {
socket.on("private message", (anotherSocketId, msg) => {
socket.to(anotherSocketId).emit("private message", socket.id, msg);
});
});
leave
)된다.disconnecting
이벤트를 리슨하고 있음으로써 연결이 끊긴 소켓이 존재했던 룸을 가지고 와서 추가적인 작업을 할 수 있다.io.on('connection', socket => {
socket.on('disconnecting', () => {
console.log(socket.rooms); // the Set contains at least the socket ID
});
socket.on('disconnect', () => {
// socket.rooms.size === 0
});
});