Streaming Text Oriented Messaging Protocol
|
|
This article may require cleanup to meet Wikipedia's quality standards. (Consider using more specific cleanup instructions.) Please help improve this article if you can. The talk page may contain suggestions. (July 2009) |
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. It provides an interoperable wire format that allows STOMP clients to talk with any Message Broker supporting the protocol. It is thus language-agnostic, meaning a broker developed for one language or platform can receive communications from client software developed in another language.
[edit] 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.
STOMP is similar to the OpenWire (binary protocol), used by the Apache ActiveMQ broker.
[edit] Implementations
These are some MOM products that support STOMP:
- Apache ActiveMQ, also known as Fuse Message Broker
- Erlstomp (an open source server implementation in Erlang)
- HornetQ
- MorbidQ (STOMP server using Python + Twisted)
- Net::STOMP::Client (an open source client implementation in Perl)
- ocamlmq (A lightweight STOMP message broker, written in OCaml)
- Open Message Queue (OpenMQ)
- POE::Component::MessageQueue (a server implementation in Perl)
- RabbitMQ (AMQP message broker, written in Erlang, which has experimental support for STOMP)
- Ruby server, also known as stompserver
- stomp.erl (an open source client implementation in Erlang)
- Stomp.py (an open source client implementation in Python)
[edit] External links
| This computer networking article is a stub. You can help Wikipedia by expanding it. |