websocket使用stomp协议做的,心跳是25秒。
在一台电脑上,登录两个客户端连接到服务端,一段时间后。其中一个客户端websocket断开。
console里输出
Whoops! Lost connection to http://abcde...
我初步判断断开的原因是在客户端,因为如果服务端断开,则两个客户端都会断开。
那么,客户端websocket断开的原因可能有哪些?
谢谢!
websocket使用stomp协议做的,心跳是25秒。
在一台电脑上,登录两个客户端连接到服务端,一段时间后。其中一个客户端websocket断开。
console里输出
Whoops! Lost connection to http://abcde...
我初步判断断开的原因是在客户端,因为如果服务端断开,则两个客户端都会断开。
那么,客户端websocket断开的原因可能有哪些?
谢谢!
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
参考原文: WebSocket断开原因分析
1. 把错误打印出来
WebSocket断开的原因有很多,最好在WebSocket断开时,将错误打印出来。
在线demo地址:https://wdd.js.org/websocket-...
2. 重要信息错误状态码
WebSocket断开时,会触发
CloseEvent
, CloseEvent会在连接关闭时发送给使用 WebSockets 的客户端. 它在 WebSocket 对象的 onclose 事件监听器中使用。CloseEvent的code字段表示了WebSocket断开的原因。可以从该字段中分析断开的原因。3. 关闭状态码表
一般来说
1006
的错误码出现的情况比较常见,该错误码一般出现在断网时。保留
. 其意义可能会在未来定义.保留
. 表示没有收到预期的状态码.1006
保留
. 用于期望收到状态码时连接非正常关闭 (也就是说, 没有发送关闭帧).4. 其他注意事项
如果你的服务所在的域是HTTPS的,那么使用的WebSocket协议也必须是
wss
, 而不能是ws
5. 参考