私はsocket.io(1.5)を使用してServercodeこのシンプルなNode.jsの持っている:私はいくつかのケースでは、このコードウントのF5キーを押し、数回実行した場合Node.jsのSocket.ioページリフレッシュの複数の接続
var io = require('socket.io').listen(8080);
io.on('connection', function(socket) {
console.log(' %s sockets connected', io.engine.clientsCount);
socket.on('disconnect', function() {
console.log("disconnect: ", socket.id);
});
});
を古い接続が切断される前に新しい接続が作成されます。しばらくすると、Heartbeat Timoutと思って、すべての接続が閉じられます。結果を参照してください:
2 sockets connected
3 sockets connected
4 sockets connected
5 sockets connected
6 sockets connected
7 sockets connected
8 sockets connected
9 sockets connected
10 sockets connected
11 sockets connected
disconnect: 0h_9pkbAaE3ftKT9AAAL
11 sockets connected
12 sockets connected
13 sockets connected
14 sockets connected
disconnect: oB4HQRCOY1UIvvZkAAAP
14 sockets connected
15 sockets connected
disconnect: LiIN0oDVoqbePgxFAAAR
15 sockets connected
16 sockets connected
17 sockets connected
18 sockets connected
disconnect: zxvk-uhWABHzmu1uAAAV
18 sockets connected
19 sockets connected
20 sockets connected
disconnect: FlboxgTzcjf6ScffAAAY
20 sockets connected
21 sockets connected
disconnect: 9UGXbnzukfGX_UtWAAAa
21 sockets connected
disconnect: pAfXOEz6RocKZdoZAAAb
21 sockets connected
disconnect: DIhTyVgG2LYBawaiAAAc
21 sockets connected
disconnect: W4XOc1iRymfTE2U0AAAd
21 sockets connected
disconnect: WZzegGPcoGDNLRTGAAAe
21 sockets connected
22 sockets connected
disconnect: KVR3-fYH0cz77BmgAAAC
disconnect: ANQknhnxr4l-OAuIAAAD
disconnect: KZE5orNx6u9MbOArAAAE
disconnect: TS6LL3asXrcznfcPAAAF
disconnect: SVNxS3I7KqecdqKhAAAG
disconnect: IE2WE5Y0PJzvxgBfAAAH
disconnect: v69bdJav9PjpThBGAAAI
disconnect: mJKT1ggfOOTshZKgAAAJ
disconnect: YlycVjdcWe0emCAcAAAK
disconnect: MoIDJSzP_L-1RUwuAAAM
disconnect: wAl0x5qwCkrnDDYQAAAN
disconnect: eiTlPEk2Hx_X-L-fAAAO
disconnect: KgkrXxzG_EpXOsPTAAAQ
disconnect: Lvf3kK-6XXEbu3NWAAAS
disconnect: -hOoGdYOIvVK04K_AAAT
disconnect: 3EUmaAYpK-U3Ss9tAAAU
disconnect: HQ6M98FebtKlU3OfAAAW
disconnect: OwgrbRBYbS4j84nmAAAX
disconnect: yN8FZAP4RjUNl2MeAAAZ
disconnect: K9IFTjlgAWzdNfpUAAAf
、私の質問は: これはバグですか、これはsocket.ioの正常な動作ですか?どのように私は接続フラッディング、簡単に押すF5を防ぐことができますか?
よろしく マルク・
ブラウザを更新してから切断すると、ブラウザはWebSocketを開いて閉じる必要があります。そうでなければ、それはブラウザのバグでしょう。ブラウザがwebSocketをすぐに閉じないと、socket.ioは(ハートビートのために)ソケットがもはやアクティブではなくなって、ソケットが最終的にクリーンアップされるのを見るでしょう。 – jfriend00
これはすべての実際のブラウザで発生します。 – mcbookwood
F5キーを押したときから最終的に切断されるまでの時間はどのくらいですか?また、接続が切断されたときにカウントが下がるのを表示しないため、何かが間違っているように見えます。 – jfriend00