[Messaging Protocol] STOMP
2018-01-07 | STOMP Messaging ProtocolSTOMP이란
- http://stomp.github.io
- 간단한 텍스트기반 메시지 프로토콜이다
- Simple (or Streaming) Text Oriented Message Protocol의 약자
- 프레임 기반 프로토콜
- 지원하는 명령어(command)
- CONNECT
- SEND
- UBSCRIBE
- UNSUBSCRIBE
- BEGIN
- COMMIT
- ABORT
- ACK
- NACK
- DISCONNECT
프레임이란
클라이언트와 서버 간의 통신은 여러 줄로 구성된 “프레임”을 통해 이루어진다 프레임의 형식은 아래와 같다 크게 3부분으로 나누어지는데 순서대로 command - header - body 이다
COMMAND
header1:value1
hedaer2:value2
Body^@
Client frame
클라이언트가 보낼 수 있는 프레임은 아래와 같다
- SEND
- SUBSCRIBE
- UNSUBSCRIBE
- BEGIN
- COMMIT
- ABORT
- ACK
- NACK
- DISCONNECT
SEND
클라이언트가 보낼 대상에게 메시지를 보낼 때의 프레임이다.
SEND
destination:/queue/trade
content-type:application/json
content-length:44
{"action" : "BUY"}
SUBSCRIB
- 구독할 때 사용하는 프레임
- 단일 연결은 서버에 대해 여러 개의 열린 구독을 가질 수 있으므로 id은 구독을 고유하게 식별하기 위한 값이다.
SUBSCRIBE
id:sub-1
destination:/topic/price.stock.*
^@
UNSUBSCRIB
- id가 sub-1인 구독을 취소할 때 사용하는 프레임
- 구독 취소될 경우, 더 이상 해당 destination에서 메시지를 받지 않는다.
UNSUBSCRIBE
id:sub-1
^@
Server frame
- MESSAGE
- RECEIPT
- ERROR
MESSAGE
MESSAGE 프레임은 구독에서 클라이언트로 메시지를 전달하는 데 사용됩니다.
MESSAGE
message-id:nxsdfasdf
subscription:sub-1
destination:/topic/price.stock.MMM
{"ticker":"MMM"}