1、WebSocket断开的原因有很多,最好在WebSocket断开时,将错误打印出来。

ws.onclose = function (e) {console.log('websocket 断开: ' + e.code + ' ' + e.reason + ' ' + e.wasClean)console.log(e)
}

2、重要错误信息状态码

WebSocket断开时,会触发CloseEvent, CloseEvent会在连接关闭时发送给使用 WebSockets 的客户端. 它在 WebSocket 对象的 onclose 事件监听器中使用。CloseEvent的code字段表示了WebSocket断开的原因。可以从该字段中分析断开的原因。

CloseEvent有三个字段需要注意, 通过分析这三个字段,一般就可找到断开原因

  • CloseEvent.code: code是错误码,是整数类型
  • CloseEvent.reason: reason是断开原因,是字符串
  • CloseEvent.wasClean: wasClean表示是否正常断开,是布尔值。一般异常断开时,该值为false

3. 关闭状态码表

一般来说1006的错误码出现的情况比较常见,该错误码一般出现在断网时。

状态码 名称 描述
0–999   保留段, 未使用.
1000 CLOSE_NORMAL 正常关闭; 无论为何目的而创建, 该链接都已成功完成任务.
1001 CLOSE_GOING_AWAY 终端离开, 可能因为服务端错误, 也可能因为浏览器正从打开连接的页面跳转离开.
1002 CLOSE_PROTOCOL_ERROR 由于协议错误而中断连接.
1003 CLOSE_UNSUPPORTED 由于接收到不允许的数据类型而断开连接 (如仅接收文本数据的终端接收到了二进制数据).
1004   保留. 其意义可能会在未来定义.
1005 CLOSE_NO_STATUS 保留. 表示没有收到预期的状态码.
1006 CLOSE_ABNORMAL 保留. 用于期望收到状态码时连接非正常关闭 (也就是说, 没有发送关闭帧).
1007 Unsupported Data 由于收到了格式不符的数据而断开连接 (如文本消息中包含了非 UTF-8 数据).
1008 Policy Violation 由于收到不符合约定的数据而断开连接. 这是一个通用状态码, 用于不适合使用 1003 和 1009 状态码的场景.
1009 CLOSE_TOO_LARGE 由于收到过大的数据帧而断开连接.
1010 Missing Extension 客户端期望服务器商定一个或多个拓展, 但服务器没有处理, 因此客户端断开连接.
1011 Internal Error 客户端由于遇到没有预料的情况阻止其完成请求, 因此服务端断开连接.
1012 Service Restart 服务器由于重启而断开连接.
1013 Try Again Later 服务器由于临时原因断开连接, 如服务器过载因此断开一部分客户端连接.
1014   由 WebSocket标准保留以便未来使用.
1015 TLS Handshake 保留. 表示连接由于无法完成 TLS 握手而关闭 (例如无法验证服务器证书).
1016–1999   由 WebSocket标准保留以便未来使用.
2000–2999   由 WebSocket拓展保留使用.
3000–3999   可以由库或框架使用.? 不应由应用使用. 可以在 IANA 注册, 先到先得.
4000–4999   可以由应用使用.

参考:https://segmentfault.com/a/1190000014582485?utm_source=tag-newest

WebSocket断开原因相关推荐

  1. socket服务器断开消息,详解JS WebSocket断开原因和心跳机制

    1.断开原因 WebSocket断开的原因有很多,最好在WebSocket断开时,将错误打印出来. ws.onclose = function (e) { console.log('websocket ...

  2. websocket 占用 端口_WebSocket断开原因分析,再也不怕为什么又断开了

    1. 把错误打印出来 WebSocket断开的原因有很多,最好在WebSocket断开时,将错误打印出来. ws.onclose = function (e) { console.log('webso ...

  3. java关闭websocket_关闭代码1006关闭websocket的原因

    关闭代码1006是一种特殊的代码,它表示浏览器实现异常(本地)关闭了连接. 在websocket.onerror(evt)事件中查看详细信息.但是,Chrome很少会向JavaScript端报告任何接 ...

  4. websocket中发生数据丢失_获取使用关闭代码1006关闭websocket的原因

    关闭代码1006是一种特殊的代码,它表示浏览器实现异常(本地)关闭了连接. 如果您的浏览器客户端报告关闭代码1006,那么您应该在websocket.onerror(evt)事件中查看详细信息. 但是 ...

  5. ClientDisconnectionReason(客户端断开原因)_羊豆豆_新浪博客

    1.BAN 系统响应超时,稍后再试 2.IDLE         因为时间太长,这是闲置的断开连接的客户端.连接超时,取决于服务器的设置 3.KICK 客户端被踢出,踢可以自动发生 4.MANUAL ...

  6. ESP Wi-Fi 连接异常断开原因排查分析

    此篇博客用来分析 ESP Wi-Fi 连接异常断开的现象. 1 Wi-Fi 连接的过程 以下是一段 Wi-Fi 顺利连接过程的 log.其中可以清晰的看出 state 的转移(init-> au ...

  7. android wifi断开原因分析

    最近在解bug的过程中经常遇到密码正确但处于saved的状态,总结原因有已下几种: 1 在ASSOCIATING阶段由于丢包导致ASSOC REJECT 03-16 09:22:12.440 D/Wi ...

  8. adruino uno 蓝牙小车制作及蓝牙连接频繁断开原因

    作为adruino的自学小白,我喜欢在这博客中学习提升自己.发布该博客可能会用很多前辈的影子.我本身是想把我得学习过程分享给想入门的小白借鉴. 话不多说,材料准备走起. hc05蓝牙模块一个 l911 ...

  9. ClientDisconnectionReason(客户端断开原因)

    1.BAN 系统响应超时,稍后再试 2.IDLE         因为时间太长,这是闲置的断开连接的客户端.连接超时,取决于服务器的设置 3.KICK 客户端被踢出,踢可以自动发生 4.MANUAL ...

最新文章

  1. The key of C# 学习笔记I-II
  2. 李彦宏:人工智能会让这个世界变得更美好吗?YES AI DO!
  3. #138. 类欧几里得算法
  4. PHP_CodeIgniter _remap重新定义方法
  5. RenderHogs for Mac(ae禁用不必要的图层和效果提高渲染预览速度插件)
  6. 又一数据库高危漏洞爆出,数据安全如何有效保障?
  7. 机器字长 存储字长 指令字长 机器字长
  8. [NOI 2010]超级钢琴
  9. 机顶盒天线接头怎么接_数字电视接收天线怎么安装
  10. SpreadJS v14.1.5 Crack
  11. LHG 弹层问题汇总
  12. iOS二维码生成与识别
  13. 密码算法详解——AES
  14. 前世界银行经济学家质疑华为财报
  15. 如何打开虚拟机服务器,虚拟机怎么打开ssh服务器
  16. 什么是kotlin?
  17. react 逆地理 高德地图_高德官宣!海外地图服务年内上线:首批覆盖亚洲多个国家...
  18. 视频直播软件开发关于亚马逊s3接入方式,视频直播源码创建存储桶方法
  19. 【数据结构与算法】八大排序(中)快速排序 快排居然还能这么优化?快排的非递归该如何写?
  20. MyBatis-Plus解说

热门文章

  1. python 列表 元祖_Python_列表与元祖
  2. Elasticsearch+Spring Boot集成实践
  3. Sql 日月年 日期格式转 月日年 日期格式
  4. 高性能计算与高性能计算机讲座笔记
  5. 利用拉勾网爬取的数据查看当前的数据分析岗的市场行情
  6. Halcon读图出错怎么办?ReadImage常见错误与处理方法(C++)
  7. 【券后价9.9元】【包邮】火山泥洗面奶男士专用控油祛痘印去黑头保湿补水学生洁面乳护肤品...
  8. 18天精读掌握《费曼物理学讲义卷一》 第9天 2019/6/25
  9. 解决Deprecated: Methods with the same name as their class will not be constructors in报错方案
  10. 国产迪王耀全球(下)