我搭建了一個(gè)websocket服務(wù),主要是html 5頁面打開的時(shí)候會連接該websocket服務(wù),我現(xiàn)在是pc端的瀏覽器打開頁面然后關(guān)閉的時(shí)候,通過在服務(wù)端用status命令檢查是沒有問題的,連接數(shù)會減少,但是手機(jī)端app里面訪問該html5頁面,然后直接關(guān)掉app,通過服務(wù)端status命令顯示該連接沒關(guān)閉掉,都過了10多分鐘還沒有關(guān)掉,非常讓人惱火,想請問下這種情況的話,該如何處理呢?
我目前看手冊里有個(gè)心跳機(jī)制,但是內(nèi)容說的好像是從客戶端定時(shí)向服務(wù)器發(fā)送點(diǎn)數(shù)據(jù),然后服務(wù)端判斷是否在間隔時(shí)間內(nèi)發(fā)送了消息來判斷是否要關(guān)掉,我不知道是否有那種在服務(wù)端檢測連接心跳的方法,客戶端沒有接收到確認(rèn)接受數(shù)據(jù)就把當(dāng)前的連接關(guān)閉,請大神指教,謝謝。
除了客戶端發(fā)數(shù)據(jù)反饋,否則服務(wù)端無法知道客戶端是否收到了服務(wù)端的數(shù)據(jù)。所以通用做法是當(dāng)某個(gè)客戶端連接在規(guī)定時(shí)間內(nèi)沒有發(fā)數(shù)據(jù)給服務(wù)端,就認(rèn)為這個(gè)連接已經(jīng)斷開,執(zhí)行close操作