首页 > 解决方案 > 使用 ping/pong 在连接丢失时断开 Websocket 会话

问题描述

我有一个 spring boot 项目,我在其中实现了 web sockets。我没有使用 STOMP,相反,我实现了一个TextWebSocketHandler处理所有消息的方法。


为了处理网络故障时的会话断开连接,我使用了如下的 ping pong 方案,如该线程处理-连接-丢失-与-websockets中所建议的那样


现在的问题是当我尝试关闭一个会话时,其他会话也被关闭了。我在回调中添加了一些日志afterConnectionClosed(),我可以看到它被触发了会话,而不是我调用close()方法的会话。

我不确定为什么会这样。

另外,有没有其他方法可以处理网络套接字中的连接丢失


以下是与版本相关的一些信息

标签: javaspringspring-bootwebsocketspring-websocket

解决方案


推荐阅读