簡體   English   中英

Websockets - 是一個“錯誤”事件,后面跟着“關閉”事件?

[英]Websockets - is an “error” event always followed by a “close” event?

我正在嘗試使用Websockets強化項目中的錯誤處理代碼。 目前,我們的代碼將捕獲“錯誤”事件以及“關閉”事件並使用各種啟發式方法(例如,是否已收到開放事件?已收到特定於我們項目的各種數據包?)以確定何種類型的發生關閉/錯誤,然后立即取消注冊事件處理程序並銷毀對Websocket的所有引用。

我一直在尋找使用狀態代碼 ,但是雖然close事件給你這個,但是錯誤事件沒有 - 並且錯誤事件似乎總是先發送。 因此,如果我在發送第一個事件時清理Websocket,我將永遠不會收到狀態代碼。

顯而易見的解決方案是忽略錯誤事件並僅處理close事件,但這引起了一個問題: 錯誤事件是否可以在沒有緊接事件被觸發后立即觸發? (如果是的話,修改后的代碼會錯過它。)我能看到的規范的唯一相關部分是這部分 ,它說明當連接關閉時,第2步觸發錯誤事件,第3步觸發關閉事件,但我看不出任何說明由於其他原因無法觸發錯誤事件的事情。

如果一個答案可以指向我證明這一點的規范的一部分,那將非常感激。

我相信你正在正確地閱讀規范 - 沒有其他引用引發error事件,這意味着你唯一一次看到error事件觸發是在websocket關閉期間(如果它有錯誤,不是在一個“正常”關閉),它將始終跟隨close事件。

鑒於在close事件期間您可以檢查事件信息以確定它是否完全關閉,人們想知道error事件的目的是什么 - 看起來您只需要擔心處理close事件,並且查看wasCleanreason屬性以確定它是否是由於錯誤引起的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM