인프런 커뮤니티 질문&답변

장희영님의 프로필 이미지
장희영

작성한 질문수

Slack 클론 코딩[실시간 채팅 with React]

워크스페이스 내에서 채널 및 디엠 채팅 시 소켓의 구조가 궁금합니다.

작성

·

215

0

안녕하세요! 강의 정말 잘 듣고 있습니다. 저에게 여러모로 큰 도움이 되고 있는 것 같습니다!

다른게 아니라 강의를 들으면서 아직 웹소켓에 대해 잘 몰라서 정확한 로직을 잘 모르겠어서 질문을 드립니다! 소켓을 사용하는 로직이

  1. 한 클라이언트에 대해 워크스페이스를 바꿀 때 마다 해당 워크스페이스에 대한 소켓을 연결

  2. 서버는 워크스페이스 별로 소켓을 관리. 채널과 디엠 상관없이 워크스페이스 별로 들어오는 모든 소켓 요청(채팅 내용)을 받아서 전달함

  3. 클라이언트는 해당 채팅 내용들을 다 받지만 현재 접속해있는 채널이나 dm을 주고 받는 상대에 대한 채팅 내용만 걸러서 화면에 보여줌

이렇게 진행되는 것이 맞을까요?

맞다면 혹시 워크스페이스라는 개념이 없이 채팅방만 있거나 1:1 채팅의 기능만 소켓을 사용하여 구현한다고 했을 때는 채팅방 별로 혹은 클라이언트 별로 소켓을 생성해서 구현을 하게 되나요..? 그게 아니라면 보통 어떻게 구현하는지 질문 드리고 싶습니다..! 감사합니다

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

네 그게 맞고요. 현재 ws://localhost:port/ws-sleact 이런 주소로 서버와 연결을 하고 ws-sleact를 네임스페이스라고 부릅니다.

워크스페이스를 구분할 필요가 없는 채팅방인 경우에는 그냥 네임스페이스를 하나(ws://localhost:port/)로 두고 하면 됩니다.

장희영님의 프로필 이미지
장희영
질문자

우와 빠른 답변 정말 감사드립니다!

장희영님의 프로필 이미지
장희영

작성한 질문수

질문하기