The WebSocket protocol [I-D.ietf-hybi-thewebsocketprotocol] provides
a subprotocol extension facility. The MessageBroker WebSocket
Subprotocol (MBWS) is a WebSocket Subprotocol used by messaging
clients to send messages to, and receive messages from an internet
message broker (herein called a message broker). A message broker is
a messaging intermediary that queues messages sent by its clients for
asynchronous delivery to its clients.
Messages are addressed to message-broker-specific address names.
Clients send messages to addresses and consume messages from
addresses. Clients do not send messages directly to other clients.
Message brokers provide a range of functionality that is outside the
scope of MBWS. Typically an internet message broker provides a REST
API for working with this functionality; such as configuring client
credentials; setting client access controls; configuring address
MBWS limits its scope to the definition of a WebSocket subprotocol
that provides a full duplex, reliable message transport protocol
between message brokers and their clients; and, between message
Since reliable message transport is often independent of a broker's
particular features, MBWS can be used as the message transport
protocol for a wide range of message brokers.
The MBWS subprotocol defines a binary message frame and a text
message frame. Both types of frame carry the same protocol; however,
the protocol bindings differ slightly. The binary frame is a
WebSocket binary message that contains an MBWS binary header followed
by a binary message body. The text frame is a WebSocket UTF-8 text
message that contains an MBWS text header followed by a text message