[rabbitmq-discuss] temp-queues in STOMP adaptor - missing subscription header
Lionel Cons
lionel.cons at cern.ch
Thu Nov 10 06:36:58 GMT 2011
Toby Corkindale writes:
> I've discovered that the /temp-queue/ feature in rabbitmq's stomp
> adaptor causes a problem with at least one STOMP library
> (Net::STOMP::Client).
>
> This is because the STOMP specification says that a MESSAGE frame must
> include a "subscription" header.
>
> However, messages sent via a temp-queue do not have this header set.
> I can understand why not - it's meaningless - however libraries which
> insist on frames strictly matching the specification will throw an error
> here.
Toby,
Indeed, Net::STOMP::Client checks that the "subscription" header is
set, as described in the STOMP 1.1 spec.
Since RabbitMQ automatically creates a new subscription (without an
explicit SUBSCRIBE frame) because of the presence of the
reply-to:/temp-queue/foo header in a SEND frame, it would make sense
to use this value (/temp-queue/foo) as the subscription id. After all,
the purpose of this header is to match a received message with
something that the client initiated.
In any case, you can tell Net::STOMP::Client to be less strict about
protocol validation by tuning $Net::STOMP::Client::Frame::CheckLevel.
Cheers,
Lionel
More information about the rabbitmq-discuss
mailing list