Simple Text Oriented Messaging Protocol
Includes:
stomper
: Interactive CLI for STOMP Clientstompd
: STOMP Brokerstomp
: STOMP Broker/Client Library
- TCP
- Websocket
stomper -t tcp
Starting the STOMP Server/Broker:
stompd -t tcp <host> <port>
Fetching the module:
go get -u github.com/tjs-w/go-proto-stomp
Importing the package:
import "github.com/tjs-w/go-proto-stomp/pkg/stomp"
GoDoc lists the APIs for integrating both the STOMP Broker and Client.
The implementation adheres to the spec leaning towards the version 1.2 of the protocol.
This implementation strictly follows the below grammar for frame construction and validation.
NULL = <US-ASCII null (octet 0)>
LF = <US-ASCII line feed (aka newline) (octet 10)>
CR = <US-ASCII carriage return (octet 13)>
EOL = [CR] LF
OCTET = <any 8-bit sequence of data>
frame-stream = 1*frame
frame = command EOL
*( header EOL )
EOL
*OCTET
NULL
*( EOL )
command = client-command | server-command
client-command = "SEND"
| "SUBSCRIBE"
| "UNSUBSCRIBE"
| "BEGIN"
| "COMMIT"
| "ABORT"
| "ACK"
| "NACK"
| "DISCONNECT"
| "CONNECT"
| "STOMP"
server-command = "CONNECTED"
| "MESSAGE"
| "RECEIPT"
| "ERROR"
header = header-name ":" header-value
header-name = 1*<any OCTET except CR or LF or ":">
header-value = *<any OCTET except CR or LF or ":">
#stomp #protocol #broker #server #client #cli
MIT License
Copyright (c) 2022 Tejas Wanjari