채팅방 생성: pub/sub 구현을 위한 Topic 생성
채팅방 입장: Topic 구독
채팅방에서 메세지 송수신: 해당 Topic으로 메세지 송신(pub), 수신(sub)
클라이언트는 메세지를 전송하기 위해 send,subscribe 등의 명령을 사용할 수 있다.
또한 요청 Frame에 메세지는 무엇이고, 누가 받아서 처리할지에 대한 Header 정보가 포함돼 있다.
이런 명령어들은 'destination' 헤더를 요구하는데 이것이 어디에 전송할지, 혹은 어디에서 메세지를 구독할 것인지를 나타낸다.
위와 같은 과정을 통해 STOMP는 publish-Subscribe 메커니즘을 제공한다. 즉 Broker를 통해 타 사용자들에게 메세지를 보내거나 서버가 특정 작업을 수행하도록 메세지를 보낼 수 있게 된다.
COMMAND
header1:value1
header2:value2
Body^@
Frame은 명령(Command)과 추가적인 헤더(Header)와 추가적인 바디(Body)로 구성이 된다.
Frame은 몇 개의 텍스트 라인으로 지정된 구조인데 첫번째 라인은 텍스트(Command 명령어)이고 이후 key:value 형태로 header 정보를 포함한다.
header이후에 공백 줄을 하나 더 추가하는 것으로 header의 끝을 설정할 수 있다.
header이후에는 Payload(Body)가 존재한다.
페이로드(Payload)는 전송되는 데이터를 의미한다.
Payload(데이터)는 Body에 위치하는데, 끝은 NULL 문자로 설정한다.
위 header로 메세지를 send하거나 subscribe 할 수 있다.
destination 정보는 stomp 서버 구현체마다 다르다.