New Stomp

New STOMP Protocol

1.1 Purpose

1.2 Terminology

1.3 Overall Operation

2.1 Basic Rules

OCTET          = <any 8-bit sequence of data>
CHAR           = <any US-ASCII character (octets 0 - 127)>
UPALPHA        = <any US-ASCII uppercase letter "A".."Z">
LOALPHA        = <any US-ASCII lowercase letter "a".."z">

ALPHA          = UPALPHA | LOALPHA
DIGIT          = <any US-ASCII digit "0".."9">
CTL            = <any US-ASCII control character
                (octets 0 - 31) and DEL (127)>
CR             = <US-ASCII CR, carriage return (13)>
LF             = <US-ASCII LF, linefeed (10)>
SP             = <US-ASCII SP, space (32)>
HT             = <US-ASCII HT, horizontal-tab (9)>
<">            = <US-ASCII double-quote mark (34)>

2.2 Protocol Grammar

CLIENT_VERB = "CONNECT" | "SUBSCRIBE" | "SEND" | "BEGIN" | "COMMIT" | "ACK" | "ABORT" | "DISCONNECT"
SERVER_VERB = "CONNECTED" "MESSAGE" | "RECEIPT" | "ERROR"
VERB = CLIENT_VERB | SERVER_VERB
REQUEST_LINE = VERB CRLF

STANDARD_CLIENT_HEADER_NAME =    "version"
                                | "login"
                                | "passcode"
                                | "destination"
                                | "ack"
                                | "transaction"
                                | "message-id"
                                | "receipt"
                                | "session"
                                | "length"

STANDARD_SERVER_HEADER_NAME =    "session"
                                | "receipt-id"

STANDARD_HEADER_NAME = STANDARD_CLIENT_HEADER_NAME | STANDARD_SERVER_HEADER_NAME
HEADER = HEADER_KEY ": " HEADER_VALUE CRLF



FRAME = REQUEST_LINE
        *( STANDARD_HEADER
         | CUSTOM_HEADER )
        CRLF
        REQUEST_BODY

(Client Frames) 

3.1 CONNECT

3.2 SUBSCRIBE

3.3 SEND

3.4 BEGIN

3.5 COMMIT

3.6 ACK

3.7 ACK

3.8 ABORT

3.9 DISCONNECT

4.1 CONNECTED

4.2 MESSAGE

4.3 RECEIPT

4.4 ERROR