关于 websocket 的 onerror |
您所在的位置:网站首页 › websocketserver会有弹窗 › 关于 websocket 的 onerror |
先贴个 w3 规范的链接。 exception 和 error event 都会由 onerror 抛出。不过在处理 error event 时 onerror 回调本身并没有多大用处。 一个重要原因是有这么一个规定,在某些条件下不允许 onerror 的 event 携带说明原因的信息,如图: 即发生以上情况时,只能知道出错了,没法知道到底什么错。 虽然是有条件的限制,但是只要不能覆盖所有的情况,就不应该依赖 onerror。而且条件还这么多 不过值得注意的是,error event 只有一种情况下会发生,那就是在 onclose 之前。原文是: 就是第二条里的这个 simple event named error。 这时,error event 一定会紧接着 onclose,并且由于 onclose 的 event 允许设置自定义 code,可以在这里对 error 做比较详细的处理。 话又说回来了,如果只是做一些粗略的判断还是可以的,毕竟至少可以在 onerror 中区分发生的是 exception 还是 error event。 但是!规范这种东西...我们知道浏览器经常不会严格按照规范实现,对于 websocket,我也不知道是不是完全按照规范实现的。不过从目前测试来看,应该没啥问题... 出了问题别找我... 另外,一些想当然会触发 onerror 的情况实际上并不会发生。 比如连接后立即调用 send() 时,会在 onerror 抛一个 Still in CONNECTING state 的 exception。既然这样,那么断开后再调用 send() 感觉也是类似的情况,应该也会有 exception 吧? 并不会。 对于这个情况,只能提前做处理,阻止 send(),或 send() 之前判断一下 readyState。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |