[未完成] WebSocket调研
调研目的 在异常情况下,网络断开对WebSocket的影响 测试代码 测试代码没有心跳机制 心跳机制并不包含在WebSocket协议内部 var ws = new WebSocket('wss://echo.websocket.org/') ws.onopen =function(e){ console.log('onopen') } ws.onerror = function (e) { console.log('onerror: ' + e.code) console.log(e) } ws.onclose = function (e) { console.log('onclose: ' + e.code) console.log(e) } 场景1: 断网后,是否会立即触发onerror, 或者onclose事件? 答案:不会立即触发 测试代码中没有心跳机制,断网后,并不会立即触发onerror或者onclose的回调函数。 个人测试的情况 及其 测试场景 Macbook pro chrome 83.0.4103.106 每隔10秒发送一次消息的情况下,40秒后出发onclose事件 Macbook pro chrome 83.0.4103.106 一直不发送消息,一直就不回出发onclose事件 Macbook pro chrome 83.0.4103.106 发出一个消息后? 场景2: 断网后,使用send()发送数据,回触发事件吗? 为什么无法准确拿到断开原因? WebSocket关闭事件中有三个属性 code 断开原因码 reason 具体原因 wasClean 是否是正常断开 官方文档上,code字段有很多个值。但是大多数情况下,要么拿到的值是undefined, 要么是1006,基本上没有其他情况。...