inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Slack 클론 코딩[백엔드 with NestJS + TypeORM]

socket onDisconnect 질문

220

노른자

작성한 질문수 81

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해줘야하는걸까요? 

nodejs express NestJS TypeORM

답변 1

0

제로초(조현영)

네스트단이 아니라 socket.io단에서 연결이 끊겼으므로 자동으로 room에서 제거한 것 같습니다.

강의자료는 어디서 다운받나요?

0

146

4

질문 있습니다.

0

320

3

코드 편집기 확장 프로그램

0

220

2

(질문)비밀 저장소에 접근하기 위한 인증 정보는 로컬 .env에 저장하는지?

0

165

2

(질문)외부 저장소를 통한 환경변수 불러오기 비동기 질문

0

180

3

로그인을 해도 LoggedInGuard쪽에서 false값이 나옵니다.

0

163

2

로그인방법이 고민됩니다.

0

197

2

yarn seed 명령어 실행 시 데이터 삽입 안됨

0

305

4

yarn run db:create 시에 발생하는 데코레이터 오류

0

249

2

npm run db:create 시에 발생하는 decorating 오류

0

245

2

RxJS 디버깅 질문 있습니다.

0

201

3

CacheManager에 대해 질문 있습니다.

0

185

2

로깅은 어떻게 하는게 효율적일까요?

0

240

1

CORS 질문 있습니다.

0

428

2

쿠키 옵션에 대해서 질문 있습니다.

0

191

2

로그아웃 요청이 403 forbidden 에러가 나는데 왜그런걸까요??

0

458

1

401 unauthorized문제

0

306

1

가드의 장점에 대해서 질문이 있습니다.

0

234

1

로그 관리에 대해 질문 있습니다.

0

256

2

CORS 에러 질문 있습니다.

0

329

2

배포 환경 DB 연결 질문 있습니다.

0

418

2

socket io 미 연결 문제 (nest & flutter)

1

1170

3

no elements in sequence 에러 관해서 질문이 있습니다.

0

466

1

start:dev-backup으로 돌리면 핫 리로딩이 되요 정상인가요?

0

329

1