STOMP Versions, Error messagas and more

37 views
Skip to first unread message

AlexErk

unread,
May 7, 2013, 6:35:12 AM5/7/13
to radiovis-...@googlegroups.com
Dear all,

we at IRT recently set up a more production like STOMP server based on ApacheMQ. The system seems to run very stable and most things look fine. However, most of the ARD stations do not want to send text messages using STOMP, so we don't do this. If our server get's an anonymous connect from a STOP Client and if the client wants to subscribe to a text topic the server sends an ERROR message and the connection is closed according to the STOMP 1.2 SPEC. The test tools page on the Radiodns website seems to stop here. This seems to be the defualt behavoir of the ApacheMQ. I've done some tests with the negotiation of the version used, but even if I try to restrict the protocol version to 1.0 the server closes the connection.

STOMP Versions in RadioVIS: 

I am not quite sure what this text in section "4 Stomp transport" should mean: 

"The Stomp transport is based upon the Stomp specification [5]. The version used may be negotiated between receiver and service provider as detailed in the specification, but both MUST support and be backward compatible with version 1.0. "

The reference [5] points to http://docs.codehaus.org/display/STOMP/Protocol which only describes STOMP 1.0, however the negotiation of the protocol is first described in 1.1 (which is not the mandated version by the spec). 

Which both versions of the STOMP protocol must be supported 1.0 and 1.1 or 1.1 and 1.2 the reference is 1.0 only.

ERROR Messages:

The 1.2 STOMP spec. is very clear that after an ERROR Message form the server, the connection must be closed. But so far I've not found spec text which describes, under what circumstances an Error message (esp. when the Topic in the SUBSCRIBE message doesn't exist )should be send. 

- So what I assume is, the most clients out there to not use the protocol negotiation feature from STOMP. So as a result STOMP 1.0 is used which does not mandate the connection to be closed after an ERROR message.  In this case or STOMP server is configured wrong(or behaves wrong). 

Does anybody know a way a way o configure this in ApacheMQ?

But still the Spec. (RadioVIS) needs to clarify the STOMP version to be used, e.g. 1.2 of STOMP. But if we do that we need to say something about the ERROR handling and the circumstances when ERROR messages shall be send or not, becaus in STOMP 1.2 an ERROR message causes a connection close. 

More:
For services which don't want to send messages for text (image only) or vice versa, in my point of view it'll be better if there would exist a way during the DNS negotiations to deal with a TEXT and IMAGE service separately? My proposal would be to perform a service record lookup for:

_radiovis-image._tcp.rdns.musicradio.com

and 

_radiovis-text._tcp.rdns.musicradio.com 

separately. If the same server and port is delivered back, the client can connect to this server and subscribe to these tow topics. A little side effect would be to have the choice to use different servers for text and images.  


What do you think?

Best Regards 

Alex
Reply all
Reply to author
Forward
0 new messages