gpt4 book ai didi

javascript - Websockets - "error"事件后面总是跟着 "close"事件吗?

转载 作者:行者123 更新时间:2023-11-28 05:49:39 24 4
gpt4 key购买 nike

我正在尝试使用 Websockets 增强项目中的错误处理代码。目前,我们的代码将捕获“错误”事件以及“关闭”事件,并使用各种启发式方法(例如,是否已收到打开事件?是否已收到特定于我们项目的各种数据包?)来决定哪种类型发生关闭/错误,然后立即取消注册事件处理程序并销毁对 Websocket 的所有引用。

我一直在考虑使用status code相反,虽然 close 事件给了你这个,但 error 事件却没有 - 并且错误事件似乎总是先发送。因此,如果我在发送第一个事件时清理 Websocket,我将永远不会收到状态代码。

显而易见的解决方案是忽略错误事件并仅处理关闭事件,但这引起了一个问题:是否可以在错误事件之后立即触发关闭事件的情况下触发它?(如果是的话,修改后的代码就会错过它。)我能看到的规范中唯一相关的部分是 this part ,其中指出当连接关闭时,步骤 2 会触发错误事件,步骤 3 会触发关闭事件,但我看不到任何表明由于其他原因无法触发错误事件的信息。

如果答案可以向我指出规范的一部分来证明这一点,我将不胜感激。

最佳答案

我相信您正确地阅读了规范 - 没有其他提及引发 error 事件的内容,这意味着您将唯一一次看到 error事件触发是在 websocket 关闭期间(如果出现错误,则不是在“正常”关闭期间),并且后面始终会跟随 close 事件。

鉴于在 close 事件期间您可以检查事件信息以了解它是否完全关闭,人们想知道 error 事件的目的是什么- 看来您只需要担心处理 close 事件,并查看 wasCleanreason 属性来确定它是否是由于错误而导致。

关于javascript - Websockets - "error"事件后面总是跟着 "close"事件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38181156/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com