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

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

liulingyin

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

3943 4 0
4個回答

keytehu

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

  • liulingyin 2018-03-26

    我這個是游戲服務(wù)器。。正常來說一個用戶只對應(yīng)一個連接

ChasenTsai

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

  • liulingyin 2018-03-26

    好的,謝謝我試下

  • ChasenTsai 2018-03-26

    既然你是游戲服務(wù)器,那么應(yīng)該涉及到時間誤差校準(zhǔn)吧?我的項目中就是把時間校準(zhǔn)當(dāng)成心跳用

maq

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

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

  • 暫無評論
maq

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

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