Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

*** !!! {{{ FE분들 읽어주세요! }}} !!! *** (채팅 관련 내용) #203

Closed
njsh4261 opened this issue Feb 8, 2022 · 2 comments
Closed
Assignees
Projects

Comments

@njsh4261
Copy link
Owner

njsh4261 commented Feb 8, 2022

채팅 서버 연동할 때 신경 쓰셔야 할 부분을 정리해서 이슈로 올려드립니다!

Subscirbe

  • STOMP connect 함수로 소켓 연결을 하는 시점은 워크스페이스의 main page에 처음 접근한 시점이 적합합니다.
  • 워크스페이스를 나가기 전까지 채팅 서버와의 connection이 유지되어야 지속적으로 메시지 수신이 가능합니다. 그러므로 connection을 담당하는 component는 해당 워크스페이스를 나기기 전까지 어떤 페이지에 방문하든 상태를 유지할 수 있는 것이어야 하합니다.
  • Connect 함수로 connection established 이후, 바로 이어서 현재 워크스페이스의 모든 채널 및 멤버에 대해 subscribe 함수를 호출해 주세요(JS/TS의 경우 callback 혹은 promise 통해서 처리 권장).
  • Connect 함수는 단 한 번, subscribe를 여러 번 호출합니다!
  • Subscribe 함수를 사용할 때 대상 endpoint는 채널의 경우 /topic/channel.{channelId} (e.g. /topic/channel.123), DM의 경우 /topic/channel.{userId1}-{userId2}가 됩니다 (e.g. /topic/channel.12-34). 채널 생성에 대한 로직 고민 #142 이슈를 참고하셔도 좋습니다.

채널 / 멤버 목록

  • 앞서 말씀드린 subscribe 동작을 수행하기에 현재 워크스페이스 서버 API는 부적합한 면이 있는데, pagination을 고려하여 부분적인 리스트만을 반환하고 있기 때문입니다.
  • 현재 API를 사용해서는 워크스페이스에 진입한 시점에서 모든 채널과 모든 멤버의 DM에 대해 subscribe가 불가능합니다.
  • 이에 따라 워크스페이스 API를 수정할 예정입니다.
    • 기존: 워크스페이스의 채널 & 멤버 목록 API가 paging된 목록을 반환, 각 목록의 element는 해당 채널/멤버에 대한 모든 메타데이터를 포함하고 있음
    • 수정안: 워크스페이스의 채널 & 멤버 목록 API가 전체 목록을 반환, 각 목록의 element는 subscribe 함수 및 채널/멤버 목록 표시에 필요한 정보만을 포함하고 있음 (e.g. id, name 정도만 포함)
  • API 수정이 완료되면 현재 이슈는 close 처리할 예정입니다.

이슈 관련한 질문 사항은 구두로 주셔도 되고, 밑에 comment로 달아 주셔도 좋습니다!

@chahtk
Copy link
Collaborator

chahtk commented Feb 8, 2022

확인했습니다

@GeonHyeongKim
Copy link
Collaborator

확인했습니다~~~

LastPunch automation moved this from To do to Done Feb 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

No branches or pull requests

3 participants