2016-05-31 4 views
0

사용자가 방을 나가는 이벤트를 듣고 싶습니다. 내가 조사한 바에 따르면 socket.rooms에는 소켓이있는 방이 분명히 들어있다. 그러나 소켓에서 disconnect 이벤트를 수신하면 분명히 소켓은 연결 해제 전에 방에서 나왔다. 따라서 socket.rooms은 연결 해제 이벤트 후 빈 개체를 생성합니다. 방의 객체 배열을 가지고 있기 때문에 방을 떠날 때 사용자를 삭제하고 싶기 때문에 사용자가 소켓 연결 해제 이벤트가 아닌 방을 나가는 이벤트를 특별히 들어야합니다.소켓 IO는 사용자가 방을 떠날 경우 감지합니다.

답변

1

사용자가 서버에서 퇴실하지 않거나 퇴실 할 때 퇴실 할 수 없습니다. 고객은 스스로 방을 나갈 수 없습니다. 따라서 사용자가 방을 떠날 때를 알기 위해서는 방안에서 방을 제거하고 disconnect 이벤트를 수신하는 자신의 코드에 연결하면됩니다.

연결 해제 이외의 다른 방법은 사용자가 방에서 나올 수있는 유일한 방법은 방안에서 코드를 제거하여 사용자가 자신의 데이터 구조를 업데이트 할 수 있도록하는 것입니다 코드는 채팅방에서 그들을 제거합니다.

disconnect 이벤트의 경우 자신의 회의실 데이터 구조를 유지 관리하는 경우 disconnect 이벤트가 발생하면 찾은 모든 회의실에서 특정 소켓을 제거하면됩니다 (예 : 각 회의실 검색 및 제거 그 소켓을 찾은 방).

관련 문제