本文章記錄于2022.06.24
參考
1.websocket斷開
系統(tǒng)發(fā)現(xiàn)websocket每隔1分鐘自動斷開連接,設(shè)置一下nginx的proxy_read_timeout
但是這個時間過長會影響服務(wù)器性能,采取心跳包的方式,即可解決問題
2.CloseEvent事件
CloseEvent.code // code是錯誤碼,整數(shù)
CloseEvent.reason // reason是斷開原因,字符串
CloseEvent.wasClean // 是否正常斷開,布爾值;異常斷開時,該值為false
3.code碼
| 狀態(tài)碼 | 名稱 | 描述 |
|---|---|---|
| 0-999 | 保留段,未使用 | |
| 1000 | CLOSE_NORMAL | 正常關(guān)閉;無論為何目的而創(chuàng)建,該鏈接都已成功完成任務(wù) |
| 1001 | CLOSE_GOING_AWAY | 終端離開,可能因為服務(wù)端錯誤,也可能因為瀏覽器正從打開連接的頁面跳轉(zhuǎn)離開 |
| 1002 | CLOSE_PROTOCOL_ERROR | 由于協(xié)議錯誤而中斷連接 |
| 1003 | CLOSE_UNSUPPORTED | 由于接收不到允許的數(shù)據(jù)類型而斷開連接 |
| 1004 | 保留 | |
| 1005 | CLOSE_NO_STATUS | 保留,表示沒有收到預(yù)期的狀態(tài)碼 |
| 1006 | CLOSE_ABNORMAL | 保留,用于期望收到狀態(tài)碼時連接非正常關(guān)閉(也就說沒有發(fā)送關(guān)閉幀) |
| 1007 | Unsupported Data | 由于收到格式不符的數(shù)據(jù)而斷開連接(如文本消息中包含了非UTF-8數(shù)據(jù)) |
| 1008 | Policy Violation | 由于收到不符合約定的數(shù)據(jù)而斷開連接. 這是一個通用狀態(tài)碼, 用于不適合使用 1003 和 1009 狀態(tài)碼的場景. |
| 1009 | CLOSE_TOO_LARGE | 由于收到過大的數(shù)據(jù)幀而斷開連接. |
| 1010 | Missing Extension | 客戶端期望服務(wù)器商定一個或多個拓展, 但服務(wù)器沒有處理, 因此客戶端斷開連接. |
| 1011 | Internal Error | 客戶端由于遇到?jīng)]有預(yù)料的情況阻止其完成請求, 因此服務(wù)端斷開連接 |
| 1012 | Service Restart | 服務(wù)器由于重啟而斷開連接. |
| 1013 | Try Again Later | 服務(wù)器由于臨時原因斷開連接, 如服務(wù)器過載因此斷開一部分客戶端連接 |
| 1014 | 由 WebSocket標(biāo)準(zhǔn)保留以便未來使用. | |
| 1015 | TLS Handshake | 保留. 表示連接由于無法完成 TLS 握手而關(guān)閉 (例如無法驗證服務(wù)器證書). |
| 1016-1999 | 由 WebSocket標(biāo)準(zhǔn)保留以便未來使用. | |
| 2000-2999 | 由 WebSocket拓展保留使用. | |
| 3000-3999 | 可以由庫或框架使用.? 不應(yīng)由應(yīng)用使用. 可以在 IANA 注冊, 先到先得. | |
| 4000-4999 | 可以由應(yīng)用使用. |