Stomp

일단 동작 방식은 이건가

  1. stomp는 웹소켓 위에서 동작하므로 클라이언트-서버 웹소켓 연결
  2. 클라이언트는 웹소켓을 통해 stomp 프레임 전송 (command : CONNECT)
  3. 클라이언트는 SUBSCRIBE command를 활용하여 서버의 채널 구독
  4. 클라이언트는 SEND command를 활용하여 메세지 전달
    1. 해당 메세지는 클라이언트와 연결된 서버에서만 처리됨
    2. 해당 메세지를 다른 서버에서 처리하려면 브로커에 publish하여 다른 서버가 consume할 수 있도록 해야함
  5. 특정 채널을 구독한 클라이언트는 브로커로부터 메세지를 전달받을 수 있음
    1. 주로 /topic, /queue에 대한 토픽을 구독함

stomp는 frame 기반의 서브 프로토콜임

즉 웹소켓은 메세지 주고받는 형식이 없는데 stomp는 frame 기반으로 채팅 통신 형식을 지정해줌

stomp의 프레임은 command, header, body + null_str로 구성됨

command :connect, subscribe, send 등등이 있음

header : key-value 꼴의 정보를 포함함

body : 데이터(payload)를 포함하고 마지막에 null_str로 끝남

kafka