Communication protocol | |
Abbreviation | STOMP |
---|---|
Purpose | Message-oriented middleware |
Introduction | () |
OSI layer | Application layer (Layer 7) |
Website | stomp |
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.
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
SEND destination:/queue/a content-type:text/plain hello queue a ^@
Implementations
Some message-oriented middleware products support STOMP, such as::
- Apache ActiveMQ,
- Fuse Message Broker
- HornetQ
- Open Message Queue (OpenMQ)
- RabbitMQ
- syslog-ng
- Spring Framework
References
- "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.
- "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.
- "STOMP Plugin". rabbitmq.com.
- "syslog-ng documentation - stomp() destination options". syslog-ng.github.io.
- "Spring Framework - STOMP". docs.spring.io.
This computer networking article is a stub. You can help Misplaced Pages by expanding it. |