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