cece-09 / BobBuddy_frontend

https://bobbuddy.vercel.app/
0 stars 0 forks source link

클라이언트 소켓 라이브러리 교체 #42

Closed cece-09 closed 5 months ago

cece-09 commented 5 months ago
cece-09 commented 5 months ago

StompJS 공식문서

STOMP는 Simple/Streaming Text Oriented Message Protocol으로 메시지의 형식과 교환방법을 정의하는 응용계층 프로토콜이고, 웹소켓 위에서 동작한다. 실시간 채팅에 적합하다.

  1. 구독과 발행 개념이 있다.
  2. Commands, Header, Body로 구성된다. Command는 CONNECT, SUBSCRIBE, SEND.. 같은 것들. Header 는 키 값 쌍으로 이루어져서 메시지 메타데이터를 포함 (HTTP Header와 유사), Body는 실제 전송 데이터
  3. 클라이언트가 Connect 명령어로 STOMP 서버에 연결 시도. 서버에서 Connected 명령어 응답이 오면 Subscribe 명령어로 채널 ID를 지정해서 메시지 구독을 할 수도 있고, Send 명령어로 대상 지정해서 메시지를 전송할 수 있다.
  4. 구독 해제는 Unsubscribe, 연결 종료는 Disconnect로 한다.

Socket.io와 다른 점은.. Socket.io는 기본적으로 WebSocket을 JS 클라이언트에서 더 편하게 쓰기 위해 (ex. 폴백) 만든 라이브러리고 STOMP는 그 자체로 하나의 프로토콜이라는 점이 있다. JS에서 STOMP 클라 구현하려면 위의 StompJS를 쓸 수 있다.