disconnect 이벤트를 일으켰을 때, 방이 삭제되지 않는 문제가 있다.유저가 socket에 연결되면 아래와 같은 동작이 실행됨
자동으로 io.on("connection") 이벤트에 걸리게 되고, "socket"이 만들어짐
<aside> 💡 몇 가지 유용한 메소드들
</aside>
<aside> 💡 특정 socket이 소속된 모든 room 보기 socket.adapter.rooms ⇒ Map 형태
</aside>

<aside> 💡 특정 room에 연결된 모든 socket 보기 io.sockets.adapter.rooms.get(roomId) ⇒ Set 형태
</aside>

"socket"을 전달받은 콜백이 실행됨
자기 id로 된 socket room은 자동으로 생성되고, 의도적으로 특정 roomId를 줘서 roomId를 key로 하는 socket room을 생성시킬 수 있다.
io.on("connection", (socket) => {
// socket과 관련된 이벤트들
});
생성된 socket들을 같은 방에 묶기
io.on("connection", (socket) => {
socket.on("join-room", (roomId, playerData) => {
socket.join(roomId);
});
});
disconnect와 leave
socket.on("disconnect", () => {
socket.broadcast.to(roomId).emit("player-disconnected", playerData);
});
<aside> 💡 leave 이벤트는 별도로 설정한 이벤트이기 때문에 socket.leave()를 통해서 socket에서도 제거해줘야한다. 그렇지 않으면 클라이언트 화면에서는 방을 나갔지만, socket은 계속 남아있게 된다.
</aside>