是否可以调用onerror回调,之后不会立即调用onclose?换句话说,是否有可能得到一个WebSocket
错误,该错误与之后关闭的连接不一致?
如果有可能,我想测试一下这个案例。我有一个使用node.js和express-ws的模拟后端。我可以在后端做什么来触发前端的onerror事件回调。
答案 0 :(得分:18)
error
事件只会在发出close
事件之前被触发,至少是通过正确实现规范的实现,即你将获得error
和{{ 1}}作为一对,或仅close
本身。
process for closing a websocket consists of 3 steps,其中第二个可选地在需要时触发close
事件:
- 如果要求用户代理使WebSocket连接失败,或者在标记为已满后关闭WebSocket连接,则在WebSocket对象上触发名为
醇>error
的简单事件。 [WSP]
在第三步之前,然后调用close:
- 创建使用
醇>error
界面的受信任事件,事件类型为CloseEvent
...
由于这两个步骤都是在同一个排队任务中一个接一个地进行,因此应该一个接一个地调用事件处理程序,而不会在它们之间发生其他事件或任务。