關(guān)于心跳問題請教下大家,使用 Gatewayworker 搭建的webSocket服務端,客戶端是Arduino
參照文檔做了心跳設(shè)置:
客戶端能收到PONG回復,抓包結(jié)果也是一致的。在vendor\workerman\gateway-worker\src\Gateway.php 打印幾個參數(shù),發(fā)現(xiàn)Gateway總是檢測不到心跳,導致連接關(guān)閉,不知道哪里不對
這個ping是websocket協(xié)議的層面的心跳,貌似GatewayWorker不識別。你得定時發(fā)點正常數(shù)據(jù)當心跳。
客戶端定時每X秒(推薦小于60秒)向服務端發(fā)送特定數(shù)據(jù)(任意數(shù)據(jù)都可)
客戶端連接 pingInterval*pingNotResponseLimit=xx 秒內(nèi)沒有任何數(shù)據(jù)傳輸給服務端則服務端認為對應客戶端已經(jīng)掉線,服務端關(guān)閉連接并觸發(fā)onClose回調(diào)。