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.

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:

  • 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

These are some MOM products that support STOMP:

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. [1]

External links edit