-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
socket onDisconnect 질문
22.04.05 15:25 작성 조회수 121
0
nestjs Gateway 클래스에서 handleDisconnect할때 socket.rooms 하면 텅 비어있는 Set이 나오더라구요.
async handleDisconnect(@ConnectedSocket() socket: Socket) {
const joinRooms = socket.rooms;
const UserId = socket.data.UserId;
console.log('socket disconnected');
console.log(UserId);
console.log(socket.rooms);
console.log(socket.connected);
for (let room of joinRooms) {
if (!room.includes('room')) continue;
const RoomId = room.split(':')[1];
this.redis.srem(`inRoom:${RoomId}:users`, UserId);
}
this.redis.srem('online:users', UserId);
}
위처럼 연결이 끊어질시에 레디스 상태를 수정하려고하는데, socket.rooms가 텅 비어져있습니다.
저기서 connect할때 넣어준 socket.data.UserId는 살아있는데 말이죠.
원래 이렇게 nestjs단에서 끊어버리는건지 궁금합니다. 그렇다면 따로 disconnect이벤트를 만들어서 emit해줘야하는걸까요?
답변을 작성해보세요.
0
답변 1