inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

socket io Namespace vs Room

995

노른자

작성한 질문수 81

1

채팅앱을 만들고있는데, 단체방이든 일대일방이든 참여방 ID별로 나눠서 분배해주려고합니다.

 

그래서 namespace와 room 둘중 하나만 써도 될것같은데, 어떤것을 쓰는게 더 나은지, 차이점이 뭔지 모르겠습니다.

그리고 client에서 자신이 포함된 채팅방들을 구독해야하는데,  namespace들을 한번에 여러개 구독하기위해서 어떻게 해야할지 모르겠습니다..

 

NestJS TypeORM nodejs express

답변 1

1

제로초(조현영)

단체방, 일대일방처럼 큰 카테고리가 namespace고

그 안에서 개별 방들의 id가 room입니다. socket.of(네임스페이스).join(방아이디) 이렇게 됩니다.

자신이 포함된 채팅방들을 구독하려면 서버에 자신의 구독한 방 목록을 보내고 서버에서 socket.join(방 아이디)해야 합니다. 여러 개변 반복문 안에서 socket.join 하면 되고, 방 목록이 db에 있는 경우는 db에서 방 아이디를 저장했다가 불러와서 socket.join하면 됩니다.

0

노른자

저같은경우는 구지 namespace와 room을 두번 나눌필요가 없으니, 서버통쨰로 그냥 하나의 namespace로 보고

그안에 여러 room을 만들어 join시켜주면 되는것이겠군요.

 

클라이언트단에서는 namespace들을 구독하려면

IO.Socket socket = IO.io('http://$apiDomain/room/1', <String, dynamic>{
'transports': ['websocket'],
});
IO.Socket socket = IO.io('http://$apiDomain/room/2', <String, dynamic>{
'transports': ['websocket'],
});

이런식으로 해야하는데 이것을 반복문 돌리기는 힘드니, (챰고로 위 언어는 dart 입니다)

socket.join으로 반복문을 돌려야하는데, 그렇다면 필연적으로 namespace가아닌 room을 선택해야겠네요.

혹시 틀린점있을까요..??

0

제로초(조현영)

클라이언트에는 room이라는 게 없습니다. 네임스페이스까지만 있고요. 서버에서 join하셔야합니다.

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

0

141

4

질문 있습니다.

0

315

3

코드 편집기 확장 프로그램

0

220

2

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

0

161

2

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

0

177

3

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

0

161

2

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

0

197

2

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

0

304

4

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

0

247

2

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

0

245

2

RxJS 디버깅 질문 있습니다.

0

198

3

CacheManager에 대해 질문 있습니다.

0

184

2

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

0

236

1

CORS 질문 있습니다.

0

425

2

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

0

188

2

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

0

458

1

401 unauthorized문제

0

303

1

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

0

231

1

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

0

254

2

CORS 에러 질문 있습니다.

0

328

2

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

0

417

2

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

1

1164

3

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

0

462

1

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

0

323

1