国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

WebSocket斷開原因分析,再也不怕為什么又斷開了

ingood / 7805人閱讀

摘要:閱讀原文把錯誤打印出來斷開的原因有很多,最好在斷開時,將錯誤打印出來。的字段表示了斷開的原因。有三個字段需要注意通過分析這三個字段,一般就可以找到斷開原因是錯誤碼,是整數類型是斷開原因,是字符串表示是否正常斷開,是布爾值。

閱讀原文:https://wdd.js.org/websocket-...

1. 把錯誤打印出來

WebSocket斷開的原因有很多,最好在WebSocket斷開時,將錯誤打印出來。

在線demo地址:https://wdd.js.org/websocket-...

ws.onclose = function (e) {
  console.log("websocket 斷開: " + e.code + " " + e.reason + " " + e.wasClean)
  console.log(e)
}
如果你想自己玩玩WebSocket, 但是你又不想自己部署一個WebSocket服務器,你可以使用ws = new WebSocket("wss://echo.websocket.org/"), 你向echo.websocket.org發送消息,它會回復你同樣的消息。
2. 重要信息錯誤狀態碼

WebSocket斷開時,會觸發CloseEvent, CloseEvent會在連接關閉時發送給使用 WebSockets 的客戶端. 它在 WebSocket 對象的 onclose 事件監聽器中使用。CloseEvent的code字段表示了WebSocket斷開的原因。可以從該字段中分析斷開的原因。

CloseEvent有三個字段需要注意, 通過分析這三個字段,一般就可以找到斷開原因

CloseEvent.code: code是錯誤碼,是整數類型

CloseEvent.reason: reason是斷開原因,是字符串

CloseEvent.wasClean: wasClean表示是否正常斷開,是布爾值。一般異常斷開時,該值為false

3. 關閉狀態碼表

一般來說1006的錯誤碼出現的情況比較常見,該錯誤碼一般出現在斷網時。

狀態碼 名稱 描述
0–999 保留段, 未使用.
1000 CLOSE_NORMAL 正常關閉; 無論為何目的而創建, 該鏈接都已成功完成任務.
1001 CLOSE_GOING_AWAY 終端離開, 可能因為服務端錯誤, 也可能因為瀏覽器正從打開連接的頁面跳轉離開.
1002 CLOSE_PROTOCOL_ERROR 由于協議錯誤而中斷連接.
1003 CLOSE_UNSUPPORTED 由于接收到不允許的數據類型而斷開連接 (如僅接收文本數據的終端接收到了二進制數據).
1004 保留. 其意義可能會在未來定義.
1005 CLOSE_NO_STATUS 保留. 表示沒有收到預期的狀態碼.
1006 CLOSE_ABNORMAL 保留. 用于期望收到狀態碼時連接非正常關閉 (也就是說, 沒有發送關閉幀).
1007 Unsupported Data 由于收到了格式不符的數據而斷開連接 (如文本消息中包含了非 UTF-8 數據).
1008 Policy Violation 由于收到不符合約定的數據而斷開連接. 這是一個通用狀態碼, 用于不適合使用 1003 和 1009 狀態碼的場景.
1009 CLOSE_TOO_LARGE 由于收到過大的數據幀而斷開連接.
1010 Missing Extension 客戶端期望服務器商定一個或多個拓展, 但服務器沒有處理, 因此客戶端斷開連接.
1011 Internal Error 客戶端由于遇到沒有預料的情況阻止其完成請求, 因此服務端斷開連接.
1012 Service Restart 服務器由于重啟而斷開連接.
1013 Try Again Later 服務器由于臨時原因斷開連接, 如服務器過載因此斷開一部分客戶端連接.
1014 由 WebSocket標準保留以便未來使用.
1015 TLS Handshake 保留. 表示連接由于無法完成 TLS 握手而關閉 (例如無法驗證服務器證書).
1016–1999 由 WebSocket標準保留以便未來使用.
2000–2999 由 WebSocket拓展保留使用.
3000–3999 可以由庫或框架使用.? 不應由應用使用. 可以在 IANA 注冊, 先到先得.
4000–4999 可以由應用使用.
4. 其他注意事項

如果你的服務所在的域是HTTPS的,那么使用的WebSocket協議也必須是wss, 而不能是ws

5. 如何在老IE上使用原生WebSocket?

web-socket-js是基于flash的技術,只需要引入兩個js文件和一個swf文件,就可以讓瀏覽器用于幾乎原生的WebSocket接口。另外,web-socket-js還是需要在ws服務端843端口做一個flash安全策略文件的服務。

我自己曾經基于stompjs和web-socket-js,做WebSocket兼容到IE5, 當然了stompjs在低版本的IE上有兼容性問題, 而且stompjs已經不再維護了,你可以使用我fork的一個版本,地址是:https://github.com/wangduandu...

主要是老版本IE在正則表達式行為方面有點異常。

      // fix ie8, ie9, RegExp not normal problem
      // in chrome the frames length will be 2, but in ie8, ie9, it well be 1
      // by wdd 20180321
      if (frames.length === 1) {
        frames.push("")
      }
6. 參考

CloseEvent

getting the reason why websockets closed with close code 1006

Defined Status Codes

Upgrading HTTP to WebSocket

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/94574.html

相關文章

  • nodejs + websocket (socket.io)

    摘要:協議做不到服務器主動向客戶端推送信息。這種單向請求的特點,注定了如果服務器有連續的狀態變化,客戶端要獲知就非常麻煩。雙向通信,服務器可以向客戶端主動發送數據。數據格式比較輕量,性能開銷小,通信高效。 為什么需要 WebSocket? 因為個人對概念理解不是很深,文字表達能力不強,如果有關HTTP等方面描述不準確,歡迎糾正,謝謝大家 初次接觸 WebSocket 的人,都會問同樣的問題:...

    awkj 評論0 收藏0
  • Linux一鍵配置工具ezhttp

    摘要:簡介是一個一鍵配置工具,采用腳本語言編寫。支持自動配置環境,以前提供各種其它的配置工具,如自動配置配置等。網絡問題斷開安裝過程中由于網絡原因導致終端斷開,默認使用安裝,可以使用命令恢復終端。 簡介 ezhttp是一個Linux一鍵配置工具,采用bash腳本語言編寫。支持自動配置LAMP,LNMP,LNAMP環境,以前提供各種其它的配置工具,如自動配置swap,配置iptables等。項...

    netScorpion 評論0 收藏0
  • Linux一鍵配置工具ezhttp

    摘要:簡介是一個一鍵配置工具,采用腳本語言編寫。支持自動配置環境,以前提供各種其它的配置工具,如自動配置配置等。網絡問題斷開安裝過程中由于網絡原因導致終端斷開,默認使用安裝,可以使用命令恢復終端。 簡介 ezhttp是一個Linux一鍵配置工具,采用bash腳本語言編寫。支持自動配置LAMP,LNMP,LNAMP環境,以前提供各種其它的配置工具,如自動配置swap,配置iptables等。項...

    qiangdada 評論0 收藏0
  • WebSocket 與 Socket.IO

    摘要:當數據發生變化,便將數據發送給。與網絡應用中,兩個應用程序同時需要向對方發送消息的能力即全雙工通信,所利用到的技術就是,其能夠提供端對端的通信。其不僅支持,還支持許多種輪詢機制以及其他實時通信方式,并封裝了通用的接口。 WebSocket 與 Socket.IO 最近小組在做一個智慧交通的項目,其中有個 分享屏幕 的功能,即一個 client 能夠將自己當前的頁面分享到另外一個 cli...

    snifes 評論0 收藏0
  • WebSocket系列之如何建立和維護可靠的連接

    摘要:與此同時,后端服務的中也有相關的長連接維持時長設置。如何快速的恢復連接根據上面的操作方案,我們會在網絡異常時斷開連接。 概述 通過前四篇博客,相信讀者對于WebSocket的使用和數據(不論是ArrayBuffer還是String)傳輸都有了一個深刻的了解。現在我們來介紹下,我在使用WebSocket時,連接相關模塊遇到的一些共性問題,以及我們如何解決這些問題。 本文作為WebSock...

    BetaRabbit 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<