Streaming Text Oriented Messaging Protocol
The Simple Text Oriented Messaging Protocol
이전에 TTMP로 알려졌던 STOMP(Simple (또는 Streaming) Text Oriented Message Protocol)는 메시지 지향 미들웨어(MOM)와 함께 작동하도록 설계된 간단한 텍스트 기반 프로토콜입니다. STOMP 클라이언트가 프로토콜을 지원하는 모든 메시지 브로커와 통신할 수 있도록 하는 상호 운용 가능한 유선 형식을 제공합니다.
What is it ?
STOMP는 단순(또는 스트리밍) 텍스트 지향 메시징 프로토콜입니다.
STOMP는 STOMP 클라이언트가 모든 STOMP 메시지 브로커와 통신하여 많은 언어, 플랫폼 및 브로커 간에 쉽고 광범위한 메시징 상호 운용성을 제공할 수 있도록 상호 운용 가능한 유선 형식을 제공합니다.
Simple Design
STOMP는 HTTP 설계 학교에서 나온 매우 간단하고 구현하기 쉬운 프로토콜입니다. 서버 측은 잘 구현하기 어려울 수 있지만 연결을 위해 클라이언트를 작성하는 것은 매우 쉽습니다. 예를 들어 Telnet을 사용하여 STOMP 브로커에 로그인하고 상호 작용할 수 있습니다!
많은 개발자들이 특정 언어, 런타임 또는 플랫폼에서 STOMP 네트워크에 몇 시간 만에 STOMP 클라이언트를 작성할 수 있었다고 말했습니다. 따라서 선호하는 언어/런타임이 충분한 STOMP 클라이언트를 제공하지 않는 경우 작성하는 것을 두려워하지 마십시오.
Overview
The protocol is broadly similar to HTTP, and works over TCP using the following commands:
- CONNECT
- SEND
- SUBSCRIBE
- UNSUBSCRIBE
- BEGIN
- COMMIT
- ABORT
- ACK
- NACK
- DISCONNECT
Communication between client and server is through a "frame" consisting of a number of lines. The first line contains the command, followed by headers in the form <key>: <value> (one per line), followed by a blank line and then the body content, ending in a null character. Communication between server and client is through a MESSAGE, RECEIPT or ERROR frame with a similar format of headers and body content.
Example
Implementations
These are some MOM products that support STOMP:
- Apache ActiveMQ
- Fuse Message Broker
- HornetQ
- Open Message Queue (OpenMQ)
- RabbitMQ (message broker, has support for STOMP)
- syslog-ng through its STOMP destination plugin
A list of implementations is also maintained on the STOMP web site.
STOMP is also supported by the [[Spring Framework] in module org.springframework:spring-websocket
.
Clients
- STOMP Over WebSocket (javascript)
- pedrokiefer/aiostomp - AsyncIO Stomp Client