Home

stomp

STOMP, the Simple/Streaming Text Oriented Messaging Protocol, is a lightweight, text-based protocol for client-to-broker messaging. It aims to be easy to implement and language-agnostic, providing a small, interoperable command set that covers common messaging patterns without the complexity of some enterprise protocols.

It runs over a reliable transport such as TCP and can also be used with WebSockets. A

Core commands include CONNECT, DISCONNECT, SEND, SUBSCRIBE, UNSUBSCRIBE, and ACK/NACK, with BEGIN, COMMIT, and ABORT for

Headers convey frame metadata; common headers include destination, id, ack, and receipt. Acknowledgement modes vary (auto,

Implementation and usage: STOMP is supported by several brokers, including Apache ActiveMQ and ActiveMQ Artemis, RabbitMQ

Versions 1.0, 1.1, and 1.2 define the frame syntax and semantics; modern brokers may extend with vendor-specific

frame
begins
with
a
command
line,
followed
by
headers,
a
blank
line,
and
an
optional
body
terminated
by
a
NUL
character.
The
protocol
is
line-oriented
and
human-readable,
and
supports
heart-beat
negotiation
to
keep
connections
alive.
transactions.
Subscriptions
specify
a
destination
(for
example
/queue/a
or
/topic/b)
and
an
identifier.
The
receipt
header
can
request
acknowledgments
of
frames.
client,
client-individual)
and
may
depend
on
broker
version.
The
destination
header
identifies
where
a
message
should
be
delivered.
(via
plugins
or
bridges),
and
others.
Client
libraries
exist
for
many
languages,
such
as
Java,
JavaScript,
Python,
and
.NET.
STOMP
can
be
used
with
WebSocket
bindings
to
enable
browser-based
clients
to
publish
and
subscribe.
features.
The
protocol
remains
widely
used
for
simple,
interoperable
messaging
between
diverse
systems.