TIL

STOMP 채팅 (TODO)

하얀잔디 2023. 11. 28. 09:57

웹소켓 -> 양방향 통신을 위한 프로토콜

 

STOMP는 웹소켓 기반으로 동작함

 

 

  • STOMP는 Simple/Stream Text Oriented Message Protocol의 약자로, 메시지 브로커의 역할을 한다.
  • STOMP는 WebSocket 기반으로 동작하며 pub/sub 구조로 되어 있다.
  • (Publisher)가 편지함에 편지를 넣어두면 그걸 기다리고 있던 편지를 받는 사람(Subscriber)가 편지를 받고 읽는 구조이다.
  • 인터넷에 떠도는 대표적인 예로
    채팅방 생성 : pub/sub 구현을 위한 Topic 생성
    채팅방 입장 : Topic 구독
    채팅방에서 메시지를 송수신 : 해당 Topic으로 메시지를 송신(pub) 혹은 수신(sub)

 

SockJs : 

 

Websocket은 Upgrade Header을 이용해 소켓연결을 하고 통ㅅ니함.

 

-> 이때 여러 가지 이유로 소켓연결이 안될때,

 

http 기반의 다른 기술로 전환하여 다시 연결을 시도할 필요가 있다.

이때 사용하는게

 

WebSocket Emulation 이고, 그를 지원해주는게 스프링에선 SockJs 라이브러리임.

 

  • SockJS는 다양한 기술을 이용해 웹소켓을 지원하지 않는 브라우저에서 정상작동하도록 도와주는데.
  1. WebSocket
  2. HTTP Streaming
  3. HTTP Long Polling
    세가지 타입을 이용한다.

 

WebSocket 과정

'TIL' 카테고리의 다른 글

ThreadLocal 이란.  (1) 2024.01.03
for vs .forEach() vs stream.forEach()  (0) 2023.12.29
CSR vs SSR  (0) 2023.11.22
long vs Long  (1) 2023.10.19
HTTP VS TCP  (0) 2023.08.18