JavaScript 處理WebSocket的超時
通常情況下,WebSocket連線建立後,如果30秒內沒有任何活動,伺服器端會對連線進行超時處理。
防火牆也可以對單位週期沒有活動的連線進行超時處理。
為了防止這種情況的發生,可以每隔一定時間,往伺服器傳送一條空的訊息。
可以通過下面這兩個函式來實現這個需求,一個用於使連線保持活動狀態,另一個專門用於結束這個狀態。
[JavaScript] 純文字檢視 複製程式碼var timerID = 0; function keepAlive() { var timeout = 15000; if (webSocket.readyState == webSocket.OPEN) { webSocket.send(''); } timerId = setTimeout(keepAlive, timeout); } function cancelKeepAlive() { if (timerId) { cancelTimeout(timerId); } }
keepAlive函式可以放在WebSocket連線的onOpen()方法的最後面,cancelKeepAlive()放在onClose()方法的最末尾。
相關文章
- Go併發呼叫的超時處理Go
- Nginx 超時事件的處理機制Nginx事件
- Java中的任務超時處理Java
- PHP超時處理全面總結PHP
- 處理可能超時的非同步操作非同步
- 【轉】JAVA處理執行緒超時Java執行緒
- iOS資料請求超時處理iOS
- JavaScript字串和時間處理隨筆JavaScript字串
- spring security:ajax請求的session超時處理SpringSession
- pymysql 處理 連線超時最好的解決方案MySql
- pip安裝模組超時怎麼處理
- php redis 處理websocket聊天記錄PHPRedisWeb
- RDSforMySQLInnoDB行鎖等待和鎖等待超時的處理ORMMySql
- Java中使用CompletableFuture處理非同步超時Java非同步
- JavaScript事件處理JavaScript事件
- 【技術積累】如何處理Feign的超時問題
- hyperf 實現延時佇列,處理超時未支付訂單佇列
- beetle.express針對websocket的高效能處理ExpressWeb
- JavaScript常用的字串處理方法JavaScript字串
- JavaScript 中的引數處理JavaScript
- netty系列之:分離websocket處理器NettyWeb
- 使用xsl實時處理xml文件(Javascript語言)XMLJavaScript
- JavaScript 異常處理JavaScript
- JavaScript | 非同步處理JavaScript非同步
- javascript - 資料處理JavaScript
- javascript字串處理類JavaScript字串
- Swift的時區處理Swift
- 6 款 Javascript 的影像處理庫JavaScript
- 6 款 Javascript 的影象處理庫JavaScript
- JavaScript的錯誤簡易處理JavaScript
- C# 優雅的處理TCP資料(心跳,超時,粘包斷包,SSL加密 ,資料處理等)C#TCP加密
- ruby webdriver 顯性等待、隱性等待、內部超時處理Web
- PHP (超文字前處理器)PHP
- Java 11:在Java中處理HTTP和WebSocket的新方法!JavaHTTPWeb
- 如何處理JavaScript 中的貨幣值?JavaScript
- JavaScript非同步處理的那些事兒JavaScript非同步
- JavaScript 非同步函式的 Promisification 處理JavaScript非同步函式
- JavaScript 錯誤處理的最佳實踐JavaScript