Node.js Socket.io Aktualisierung der Seite mehrere verbindungen

habe ich diese einfach node.js Servercode mit Buchse.io (1.5):

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);
    });
});

Wenn ich diesen code ausführen und drücken Sie die F5-Taste mehrmals, in einigen Fällen neue Verbindung erstellt wird, bevor der alte nicht angeschlossen ist. Nach einiger Zeit, ich denke, die die Heartbeat-Timeout, werden alle verbindungen geschlossen werden. Das Ergebnis sehen:

 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

Meine Frage ist:
Ist das ein Bug oder ist das das normale Verhalten des Sockels.io? Wie kann ich verhindern, dass die Verbindung überschwemmungen, einfach F5 drücken?

Beste Grüße
Marc

  • Der browser sollte in der Nähe öffnen webSockets, wenn Sie den browser aktualisieren und dann sollten Sie sich trennen. Wenn nicht, dann wäre das ein browser-bug. Im Fall, dass der browser nicht sofort schließen der webSocket-Buchse.io wird sehen, dass der socket nicht mehr aktiv ist (weil der Herzschlag) und der Steckdose wird irgendwann bereinigt.
  • Dies geschieht mit allen aktuellen Browsern.
  • Was ist die Zeit zwischen, wenn Sie drücken Sie die F5-Taste und wenn die server endlich mal das zu trennen? Es sieht auch wie etwas falsch sein kann, in Ihr zählen, weil Sie nicht zeigen, die Zählung geht nach unten, wenn Sie eine Verbindung trennen.
  • Wenn Sie F5 drücken, nur einmal das ist, trennen Sie kommt sofort. Aber wenn Sie drücken Sie die F5-Taste schnell genug, einige discennects "verloren". Ich dont denke, der counter ist falsch, denn die Beispiel-server nur zählt, wenn eine neue Verbindung geöffnet wird
  • Mein Kommentar über die Theke ist, dass Sie eine disconnect-Nachricht, aber die zählen nicht nach unten gehen. Das scheint ziemlich sichtbar im log. Wenn es nur rapid fire aktualisiert, die das problem verursachen, ich weiß nicht, warum Sie besorgt sind über die Frage überhaupt. Tun Sie bereinigen nach sich selbst, nach einiger kurzer Zeit, so gibt es kein versehentliches langfristige Akkumulation von nichts. Bedeutet das jede wirkliche Problem? Kürzen kann man die Buchse.io-inactivity-timeout, so dass Sie sich selbst reinigen früher, aber das schaffen könnte, andere Kompromisse also, wenn es nicht tatsächlich verursacht das ein echtes problem, würde ich Sie nicht ändern.
  • Sorry ich war nicht klar genug...Zum Beispiel bei 1: 14 Steckdosen angeschlossen 2: trennen: oB4HQRCOY1UIvvZkAAAP 3: 14 Steckschlüsseleinsätze mit Ersten Zeile: Es gibt eine neue Verbindung => Count = 14, Zweite Zeile: Dort war eine Unterbrechung => Count = 13 (Sie können nicht sehen, die 13, die in den log, weil seine nur das schreiben ins log-für eine neue Verbindung die) Dritte Reihe: Es gibt eine neue Verbindung => 13 + 1 = 14, Wenn dies ein echtes Problem? Ich weiß es nicht...aber wenn Sie das aussenden von Nachrichten an andere Buchsen auf ein disconnect-Ereignis es kann ein Problem sein.
  • haben Sie einen Blick auf meine Antwort auf meine eigene Frage hier - es fixiert es für mich. stackoverflow.com/questions/48137228/...

InformationsquelleAutor mcbookwood | 2017-01-29
Schreibe einen Kommentar