Streaming Text Oriented Messaging Protocol
{{Short description|Communications protocol}}
{{Infobox networking protocol
| title =
| logo =
| logo alt =
| image =
| image alt =
| caption =
| abbreviation = STOMP
| purpose = Message-oriented middleware
| developer =
| date = {{Start date and age| | | }}
| based on =
| influenced =
| osilayer = Application layer (Layer 7)
| ports =
| rfcs =
}}
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.{{Cite web|url=https://stomp.github.io|title=STOMP - The Simple Text Oriented Messaging Protocol|website=stomp.github.io}}{{Cite book|url=https://link.springer.com/book/10.1007/978-1-4302-4741-8|chapter-url=https://link.springer.com/chapter/10.1007/978-1-4302-4741-8_5|title=The Definitive Guide to HTML5 WebSocket|author1=Vanessa Wang |author2=Frank Salim |author3=Peter Moskovits|publisher=Apress|chapter=Using Messaging over WebSocket with STOMP|date=2013|pages=85–108 |doi=10.1007/978-1-4302-4741-8_5 |isbn=978-1-4302-4740-1 }}
Overview
The protocol is broadly similar to HTTP, and works over TCP using the following commands:{{Cite web|url=https://stomp.github.io/stomp-specification-1.2.html|title=STOMP Protocol Specification, Version 1.2|website=stomp.github.io}}
- 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
Example
SEND
destination:/queue/a
content-type:text/plain
hello queue a
^@
Implementations
Some message-oriented middleware products support STOMP,{{Cite web|url=https://stomp.github.io/implementations.html|title=STOMP Servers|website=stomp.github.io}} such as::
- Apache ActiveMQ,
- [http://fusesource.com/products/enterprise-activemq/ Fuse Message Broker]{{Cite web|url=https://developers.redhat.com/products/fuse/download|title=Red Hat Fuse - Distributed, cloud-native integration platform|website=developers.redhat.com}}
- HornetQ
- Open Message Queue (OpenMQ)
- RabbitMQ{{Cite web|url=https://www.rabbitmq.com/docs/stomp|title=STOMP Plugin|website=rabbitmq.com}}
- syslog-ng{{Cite web|url=https://syslog-ng.github.io/admin-guide/070_Destinations/280_Stomp/000_Stomp_options.html|title=syslog-ng documentation - stomp() destination options|website=syslog-ng.github.io}}
- Spring Framework{{Cite web|url=https://docs.spring.io/spring-framework/reference/web/websocket/stomp.html|title=Spring Framework - STOMP| website=docs.spring.io}}
References
{{Reflist}}
Category:Application layer protocols
Category:Message-oriented middleware
{{DEFAULTSORT:STOMP}}
{{network-stub}}