StompBrokerRelayMessageHandler - 许多日志错误

Urb*_*leg 3 java spring stomp websocket

我们在stomp和sockjs上使用带有tomcat 7的弹簧腹板.我们的日志中包含以下错误:

[WEBAPP] 16 Aug 2015 08:11:24 ERROR StompBrokerRelayMessageHandler - Failed to forward DISCONNECT session=7ufvyfvf
[WEBAPP] 16 Aug 2015 08:13:47 ERROR StompBrokerRelayMessageHandler - Failed to forward DISCONNECT session=d017bxnq
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?我们如何删除\缓解这个?

wol*_*dev 6

对不起,我有点晚了.然而,遇到了相同/类似的问题.我猜你正在使用像rabbitmq这样的留言经纪人.

ERROR StompBrokerRelayMessageHandler:584 - TCP connection failure in session uwdglayp: Transport failure: Connection reset by peer
Run Code Online (Sandbox Code Playgroud)

有时它是前向故障,通常是连接故障.

我做了什么?在将日志记录级别更改为debug之后,我发现spring应用程序向messagebroker发送了两条DISCONNECT消息.

在客户端调用stomp.disconnect()会导致发送DISCONNECT消息(STOMP)并关闭套接字(socketJS).

StompBrokerRelayMessageHandler向Broker通知DISCONNECT消息并另外发送DISCONNECT,因为套接字由客户端关闭,都是异步的.Spring无法捕获第二个断开连接,第二个断开连接将发生错误.

什么指定STOMP?(DISCONNECT SPEC)

客户端可以通过关闭套接字随时断开与服务器的连接,但不保证服务器已接收到先前发送的帧

我的解决方案:修改STOMP客户端,只关闭套接字而不发送DISCONNECT消息(客户端将关闭套接字)

另一个解决方案:只发送一个DISCONNECT消息(spring将关闭套接字)

我将检查STOMP的其他实现以找到更好的解决方案.