[rabbitmq-discuss] STOMP Connector / Net::Stomp / Custom Headers

Tony Garnock-Jones tonyg at lshift.net
Tue Jan 27 15:15:00 GMT 2009

Hi Darien,

> 1) When sending a message, I've tried setting the header named:
> 'reply-to', 'reply_to', x-reply-to', and 'x_reply_to'.  In *all*
> cases, it seems that the STOMP connector strips this header before
> sending the message through to the receiving *perl* process.

As you noted, the STOMP adapter treats all headers as case sensitive.

If you set "reply-to", then the "reply-to" header in the Basic Content
Properties part of the AMQP delivery is set to the string you give.
However, when the adapter gets a Basic.Deliver, it doesn't take the
"reply-to" header out of it to pass on to the STOMP client! I should fix

If you set "X-reply-to", then an AMQP *user* header called "reply-to"
will be placed in the "headers" header in the Basic Content Properties
part of the delivery. I *did* implement the bit where the "headers"
header is extracted, keys prefixed with "X-", and send on in the MESSAGE
to the STOMP client. Phew.

> 2) In general, how does the STOMP connector deal with custom headers
> via Net::Stomp?  Does it strip out all custom headers?  Or only custom
> headers that don't begin with 'x-'?

User-level headers (that go in the "headers" member of a Basic Content
Properties frame, see section 1.1.6, page 21, line 5 of
are expected to be prefixed with "X-" in a SEND, and are prefixed with
"X-" when packaged up into a MESSAGE.

There are also "X-Q-" and "X-B-" prefixes that are used to construct the
arguments tables for queue declaration and binding, respectively, during
a SUBSCRIBE operation.

 [][][] Tony Garnock-Jones     | Mob: +44 (0)7905 974 211
   [][] LShift Ltd             | Tel: +44 (0)20 7729 7060
 []  [] http://www.lshift.net/ | Email: tonyg at lshift.net

More information about the rabbitmq-discuss mailing list