国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

php socket-io我count($io->worker->connections)數(shù)字比實際用戶連接超出好多。

liulingyin

在線統(tǒng)計用戶就100多個人,但連接卻有1300多個,連接不是自動銷毀的么,如果客戶端非正常斷開鏈接會殘留的么。是不是要加心跳。socket-io的心跳要怎么加。。。

4014 4 0
4個回答

keytehu

因為有些用戶開了多個頁面多個連接吧

  • liulingyin 2018-03-26

    我這個是游戲服務器。。正常來說一個用戶只對應一個連接

ChasenTsai

長連接必須加心跳的呀。
至于怎么加,實現(xiàn)方式有很多的。
比如服務端 on connection 的時候設置一個定時器,每 30 秒查詢上次心跳時間,如果超過一定時間,則判定用戶已離線,將其 disconnect。
而客戶端 on connect 的時候也設置一個定時器,每 29 秒發(fā)送一個心跳指令。服務端收到之后更新心跳時間。

  • liulingyin 2018-03-26

    好的,謝謝我試下

  • ChasenTsai 2018-03-26

    既然你是游戲服務器,那么應該涉及到時間誤差校準吧?我的項目中就是把時間校準當成心跳用

maq

sockeio 在客戶端連接的過程中,一般會發(fā)起好幾個網(wǎng)絡連接(HTTP 請求),最終會得到并保持一個 WebSocket 長連接,這個長連接是有 ping 的,所以應該不存在殘留的問題。

$io->worker->connections 并不嚴格對應每個客戶端,如果你的客戶端頻繁重連 socketio 的話,產(chǎn)生的網(wǎng)絡連接數(shù)是會多一些的。不過你這個也多太多了……

  • 暫無評論
maq

你可以試試 count($io->of('/')->sockets) 看看結(jié)果如何,這個應該更接近真實的在線客戶數(shù)。

  • 暫無評論
年代過于久遠,無法發(fā)表回答
??