Streaming Text Oriented Messaging Protocol

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]

Streaming Text Oriented Messaging Protocol
Communication protocol
AbbreviationSTOMP
PurposeMessage-oriented middleware
Introduction ()
OSI layerApplication layer (Layer 7)
Websitestomp.github.io

Overview

edit

The 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

edit
SEND
destination:/queue/a
content-type:text/plain

hello queue a
^@

Implementations

edit

Some message-oriented middleware products support STOMP[4], such as::

References

edit
  1. ^ "STOMP - The Simple Text Oriented Messaging Protocol". stomp.github.io.
  2. ^ Vanessa Wang; Frank Salim; Peter Moskovits (2013). "Using Messaging over WebSocket with STOMP". The Definitive Guide to HTML5 WebSocket. Apress.
  3. ^ "STOMP Protocol Specification, Version 1.2". stomp.github.io.
  4. ^ "STOMP Servers". stomp.github.io.
  5. ^ "Red Hat Fuse - Distributed, cloud-native integration platform". developers.redhat.com.
  6. ^ "STOMP Plugin". rabbitmq.com.
  7. ^ "syslog-ng documentation - stomp() destination options". syslog-ng.github.io.
  8. ^ "Spring Framework - STOMP". docs.spring.io.