websocket中发生数据丢失_获取使用关闭代码1006关闭websocket的原因
關閉代碼1006是一種特殊的代碼,它表示瀏覽器實現異常(本地)關閉了連接。
如果您的瀏覽器客戶端報告關閉代碼1006,那么您應該在websocket.onerror(evt)事件中查看詳細信息。
但是,Chrome很少會向JavaScript端報告任何接近代碼1006的原因。這可能是由于WebSocket規范中的客戶端安全規則所致,以防止濫用websocket。(例如使用它掃描目標服務器上的開放端口,或為拒絕服務攻擊生成大量連接)。
請注意,1006如果HTTP升級到Websocket時發生錯誤,Chrome通常會報告關閉代碼(這是在技術上“連接” websocket之前的步驟)。由于諸如身份驗證或授權不正確或協議使用不當(例如請求子協議,但服務器本身不支持該子協議)之類的原因,甚至是試圖與非Websocket的服務器位置進行通信的原因(例如嘗試連接到ws://images.google.com/)
從根本上講,如果您看到關閉代碼1006,則websocket本身存在一個非常低級的錯誤(類似于“無法打開文件”或“套接字錯誤”),并不是真正的用戶,因為它指出了一個低級問題與您的代碼和實現。解決低級問題,然后在連接時可以包含更合理的錯誤代碼。您可以根據項目的范圍或嚴重性來完成此操作。示例:信息和警告級別是項目特定協議的一部分,并且不會導致連接終止。使用嚴重或致命消息進行報告時,還可以使用項目的協議來傳達所需的詳細信息,然后使用websocket關閉流程的有限功能關閉連接。
請注意,WebSocket關閉代碼的定義非常嚴格,并且關閉原因短語/消息的長度不能超過123個字符(這是有意的websocket限制)。
但是,如果您只是出于調試原因而希望獲得此信息,那么并不是全部丟失,因為關閉的詳細信息及其根本原因經常在Chrome的javascript控制臺中報告,并且包含相當詳細的信息。
總結
以上是生活随笔為你收集整理的websocket中发生数据丢失_获取使用关闭代码1006关闭websocket的原因的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php获取ajax数组,从AJAX获取P
- 下一篇: git 查看自己秘钥_gitlab配置s