增加双向心跳解决websocket连接后台报java.io.EOFException: null
·
使用websocket连接向前端不定期推送数据,但是时常会连接断开,网上说是需要心跳机制,于是让前端增加了向后端10s一次的心跳,增加心跳后,发现在几分钟左右,会不定期报java.io.EOFException: null,然后连接断开,有人说是因为没有配置异常处理,于是增加了异常处理的方法:
@OnError
public void onError(Session session,Throwable t) {
// e.printStackTrace();
logger.info("异常情况处理:"+session.getId());
try {
boolean open = session.isOpen();
if(open){
session.close();
}
} catch (IOException e) {
e.printStackTrace();
logger.error(e.getMessage(),e);
}
logger.error(t.getMessage(),t);
}
增加了之后还是会时常抛出这个问题,于是增加了后台向前端的心跳,最终解决了!
@OnMessage
public void onMessage(String message, Session session)
在此方法中,当接收到前端发送的心跳后,回应一下,就没有再出现这个问题,不知道原理如果有懂的希望可以解答一下.
更多推荐
所有评论(0)