The protocol is broadly similar to HTTP, and works over TCP using the following commands:3
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.
Some message-oriented middleware products support STOMP,4 such as::
"STOMP - The Simple Text Oriented Messaging Protocol". stomp.github.io. https://stomp.github.io ↩
Vanessa Wang; Frank Salim; Peter Moskovits (2013). "Using Messaging over WebSocket with STOMP". The Definitive Guide to HTML5 WebSocket. Apress. pp. 85–108. doi:10.1007/978-1-4302-4741-8_5. ISBN 978-1-4302-4740-1. 978-1-4302-4740-1 ↩
"STOMP Protocol Specification, Version 1.2". stomp.github.io. https://stomp.github.io/stomp-specification-1.2.html ↩
"STOMP Servers". stomp.github.io. https://stomp.github.io/implementations.html ↩
"Red Hat Fuse - Distributed, cloud-native integration platform". developers.redhat.com. https://developers.redhat.com/products/fuse/download ↩
"STOMP Plugin". rabbitmq.com. https://www.rabbitmq.com/docs/stomp ↩
"syslog-ng documentation - stomp() destination options". syslog-ng.github.io. https://syslog-ng.github.io/admin-guide/070_Destinations/280_Stomp/000_Stomp_options.html ↩
"Spring Framework - STOMP". docs.spring.io. https://docs.spring.io/spring-framework/reference/web/websocket/stomp.html ↩