這篇文章主要介紹了workerman怎樣保持連接,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
正常的情況客戶端斷開連接會向服務端發(fā)送一個fin包,服務端收到fin包后得知客戶端連接斷開,則立刻觸發(fā)onClose事件回調(diào)。
但是有些極端情況如客戶端掉電、網(wǎng)絡關閉、拔網(wǎng)線、路由故障等,這些極端情況客戶端無法發(fā)送fin包給服務端,服務端便無法知道連接已經(jīng)斷開。如果客戶端與服務端定時有心跳數(shù)據(jù)傳輸,則會比較及時的發(fā)現(xiàn)連接斷開,觸發(fā)onClose事件回調(diào)。
另外路由節(jié)點防火墻會關閉長時間不通訊的socket連接,導致socket長連接斷開。所以需要客戶端與服務端定時發(fā)送心跳數(shù)據(jù)保持連接不被斷開。
GatewayWorker中如何配置心跳檢測?
目前GatewayWorker支持兩種心跳檢測,服務端設定多少秒內(nèi)沒收到心跳關閉連接(推薦),同時也支持服務端定時向客戶端發(fā)送心跳數(shù)據(jù)(不推薦)。
客戶端定時發(fā)送心跳(推薦)
客戶端定時(間隔好小于60秒)向服務端發(fā)送心跳。服務端類似以下配置:
$gateway = new Gateway("Websocket://0.0.0.0:8585"); $gateway->pingInterval = 55; $gateway->pingNotResponseLimit = 1; $gateway->pingData = '';
感謝你能夠認真閱讀完這篇文章,希望小編分享workerman怎樣保持連接內(nèi)容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián)網(wǎng)站建設公司,,關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián)網(wǎng)站建設公司,,詳細的解決方法等著你來學習!
當前標題:workerman怎樣保持連接-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://www.chinadenli.net/article44/dciiee.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供微信公眾號、品牌網(wǎng)站設計、搜索引擎優(yōu)化、營銷型網(wǎng)站建設、關鍵詞優(yōu)化、服務器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)