在互联网连接丢失跺脚客户端 java 上检测 websocket 连接中断

时间:2021-07-16 12:16:06

标签: java spring-boot websocket spring-websocket stomp

Java stomp 客户端在 Internet 连接丢失时不响应。有没有办法在 Internet 连接丢失或套接字断开时在 handleTransportError 方法中获得异常?

public class SocketHandler extends StompSessionHandlerAdapter{

@Override
public void handleTransportError(){
 //Expected error here
}

@Override
public void handleException(){

}

@Override
public void afterConnected(){

}

2 个答案:

答案 0 :(得分:0)

是的,这些方法允许您访问 Session 和 Exception 对象,但您有错误的方法签名。

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/messaging/simp/stomp/StompSessionHandlerAdapter.html

答案 1 :(得分:0)

TCP 协议可能会很慢才能注意到连接丢失。这就是 STOMP 1.1 协议引入心跳功能的原因。可以选择使用心跳来测试底层 TCP 连接的健康状况,并确保远程端处于活动状态并正常运行。

根据初始连接时与心跳协商的内容,客户端或服务器可能需要定期发送“心跳”消息。如果您的客户端在规定的时间段内没有收到来自服务器的心跳,则认为连接已丢失。