Simple (or Streaming) Text Oriented Message Protocol (STOMP), formerly known as TTMP, is a simple text-based protocol, designed for working with message-oriented middleware (MOM). It provides an interoperable wire format that allows STOMP clients to talk with any message broker supporting the protocol.[1][2]
| Communication protocol | |
| Abbreviation | STOMP |
|---|---|
| Purpose | Message-oriented middleware |
| Introduction | |
| OSI layer | Application layer (Layer 7) |
| Website | stomp |
Overview
editThe protocol is broadly similar to HTTP, and works over TCP using the following commands:[3]
- 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
editSEND destination:/queue/a content-type:text/plain hello queue a ^@
Here ^@ is the caret notation for the null character. Lines are ended with LF (\n, ^J, 0x10).
Implementations
editSome message-oriented middleware products support STOMP,[4] such as:
References
edit- ↑ "STOMP - The Simple Text Oriented Messaging Protocol". stomp.github.io.
- ↑ Vanessa Wang; Frank Salim; Peter Moskovits (2013). "Using Messaging over WebSocket with STOMP". The Definitive Guide to HTML5 WebSocket. Apress. pp. 85–108. doi:10.1007/978-1-4302-4741-8_5. ISBN 978-1-4302-4740-1.
- ↑ "STOMP Protocol Specification, Version 1.2". stomp.github.io.
- ↑ "STOMP Servers". stomp.github.io.
- ↑ "Red Hat Fuse - Distributed, cloud-native integration platform". developers.redhat.com. 23 October 2024.
- ↑ "STOMP Plugin". rabbitmq.com.
- ↑ "syslog-ng documentation - stomp() destination options". syslog-ng.github.io.
- ↑ "Spring Framework - STOMP". docs.spring.io.