Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A single websocket message containing multiple STOMP frames #24

Open
GregDThomas opened this issue Jul 14, 2014 · 0 comments
Open

A single websocket message containing multiple STOMP frames #24

GregDThomas opened this issue Jul 14, 2014 · 0 comments

Comments

@GregDThomas
Copy link

If the stilts stomp-client receives a single websocket message that contains two or more STOMP frames, then only the first of those frames is processed. This means that frames are silently lost. I've seen this against a ActiveMQ Apollo broker (simply fire two messages to a destination to which you've subscribed in quick succession; only the first will arrive) - it could no doubt occur against other brokers, too.

See also http://jmesnil.net/weblog/2012/05/15/stomp-over-websockets-with-multi-frames/

Below is an extract from the log file ...

TRACE 2014-07-14 08:59:54,513 [DebugHandler] - CLIENT_HEAD <<inbound<< [id: 0xcdde5cbd, /127.0.0.1:55694 => /127.0.0.1:8090] :: MESSAGE+BUFFER ?~�$MESSAGE
subscription:subscription-0
message-id:localhost-21
receipt:receipt-0
destination:/topic/SOME_TOPIC
content-length:17

any old content 0^@
MESSAGE
subscription:subscription-0
message-id:localhost-22
receipt:receipt-1
destination:/topic/SOME_TOPIC
content-length:17

any old content 1^@

TRACE 2014-07-14 08:59:54,514 [DebugHandler] - CLIENT_TAIL <<inbound<< [id: 0x3e06ea70, /127.0.0.1:55701 => /127.0.0.1:8090] :: [id: 0x3e06ea70, /127.0.0.1:55701 => /127.0.0.1:8090] RECEIVED: [StompControlFrame: header=[FrameHeader: command=RECEIPT; headers={receipt-id=receipt-0}]] ** class org.jboss.netty.channel.UpstreamMessageEvent
TRACE 2014-07-14 08:59:54,514 [DebugHandler] - CLIENT_TAIL <<inbound<< [id: 0x3e06ea70, /127.0.0.1:55701 => /127.0.0.1:8090] :: MESSAGE [StompControlFrame: header=[FrameHeader: command=RECEIPT; headers={receipt-id=receipt-0}]]
TRACE 2014-07-14 08:59:54,517 [DebugHandler] - CLIENT_MID <<inbound<< [id: 0xcdde5cbd, /127.0.0.1:55694 => /127.0.0.1:8090] :: [id: 0xcdde5cbd, /127.0.0.1:55694 => /127.0.0.1:8090] RECEIVED: [StompContentFrame: header=[FrameHeader: command=MESSAGE; headers={subscription=subscription-0, content-length=17, message-id=localhost-21, receipt=receipt-0, destination=/topic/SOME_TOPIC}]] ** class org.jboss.netty.channel.UpstreamMessageEvent
TRACE 2014-07-14 08:59:54,517 [DebugHandler] - CLIENT_MID <<inbound<< [id: 0xcdde5cbd, /127.0.0.1:55694 => /127.0.0.1:8090] :: MESSAGE [StompContentFrame: header=[FrameHeader: command=MESSAGE; headers={subscription=subscription-0, content-length=17, message-id=localhost-21, receipt=receipt-0, destination=/topic/SOME_TOPIC}]]
TRACE 2014-07-14 08:59:54,518 [AbstractClientControlFrameHandler] - received: [StompContentFrame: header=[FrameHeader: command=MESSAGE; headers={subscription=subscription-0, content-length=17, message-id=localhost-21, receipt=receipt-0, destination=/topic/SOME_TOPIC}]]
TRACE 2014-07-14 08:59:54,526 [DebugHandler] - CLIENT_TAIL <<inbound<< [id: 0xcdde5cbd, /127.0.0.1:55694 => /127.0.0.1:8090] :: [id: 0xcdde5cbd, /127.0.0.1:55694 => /127.0.0.1:8090] RECEIVED: [StompMessage: headers={subscription=subscription-0, content-length=17, message-id=localhost-21, receipt=receipt-0, destination=/topic/SOME_TOPIC}   content=any old content 0] ** class org.jboss.netty.channel.UpstreamMessageEvent
TRACE 2014-07-14 08:59:54,526 [DebugHandler] - CLIENT_TAIL <<inbound<< [id: 0xcdde5cbd, /127.0.0.1:55694 => /127.0.0.1:8090] :: MESSAGE [StompMessage: headers={subscription=subscription-0, content-length=17, message-id=localhost-21, receipt=receipt-0, destination=/topic/SOME_TOPIC}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant