Javascript Websockets-是一个;“错误”;事件后始终加上一个“;“关闭”;事件

Javascript Websockets-是一个;“错误”;事件后始终加上一个“;“关闭”;事件,javascript,events,websocket,Javascript,Events,Websocket,我正在尝试使用WebSocket对项目中的错误处理代码进行健壮化。目前,我们的代码将捕获一个“错误”事件和一个“关闭”事件,并使用各种启发式方法(例如,是否已收到开放事件?是否已收到特定于我们项目的各种数据包?)确定发生了什么类型的关闭/错误,然后立即注销事件处理程序并销毁对Websocket的所有引用 我一直在考虑改用,但是尽管close事件提供了这一点,但是error事件没有,而且error事件似乎总是先发送。因此,如果在发送第一个事件时清除Websocket,我将永远不会收到状态代码 显而

我正在尝试使用WebSocket对项目中的错误处理代码进行健壮化。目前,我们的代码将捕获一个“错误”事件和一个“关闭”事件,并使用各种启发式方法(例如,是否已收到开放事件?是否已收到特定于我们项目的各种数据包?)确定发生了什么类型的关闭/错误,然后立即注销事件处理程序并销毁对Websocket的所有引用

我一直在考虑改用,但是尽管close事件提供了这一点,但是error事件没有,而且error事件似乎总是先发送。因此,如果在发送第一个事件时清除Websocket,我将永远不会收到状态代码

显而易见的解决方案是忽略错误事件,只处理关闭事件,但这引发了一个问题:如果错误事件没有立即触发关闭事件,是否可以触发该错误事件?(如果是,修改后的代码将错过它)。我能看到的规范的唯一相关部分是,这表示当连接关闭时,第2步触发错误事件,第3步触发关闭事件,但我看不到任何说明由于其他原因无法触发错误事件的内容


如果有人能给我一个答案来证明这一点,我将不胜感激。

我相信您正确地阅读了该规范-没有其他关于引发
错误事件的参考,这意味着您将看到
错误事件触发的唯一时间是在关闭websocket期间(如果它发生错误,而不是在“正常”关闭期间),并且它后面始终会出现
关闭事件


考虑到在
关闭
事件期间,您可以检查事件信息,以确定它是否完全关闭,我们想知道
错误
事件的目的是什么-您似乎只需要担心处理
关闭
事件,并查看
wasClean
reason
属性来确定它是否是由错误引起的。

我相信您正确地阅读了规范-没有其他引用引发
错误
事件,这意味着您将看到
错误
事件触发的唯一时间是在关闭websocket期间(如果它发生错误,而不是在“正常”关闭期间),并且它后面始终会出现
关闭事件

考虑到在
关闭
事件期间,您可以检查事件信息,以确定它是否完全关闭,我们想知道
错误
事件的目的是什么-您似乎只需要担心处理
关闭
事件,并查看
wasClean
reason
属性,以确定它是否是由错误引起的