Der Socket.io-Server hat die Registrierung der Clienttrennungen sehr verzögert

Ich habe eine socket.io-Verbindung, die xhr als einzigen Transport verwendet. Wenn ich die App in den Browser lade (in Chrome und FF getestet), wird die Socket-Verbindung hergestellt und alles funktioniert einwandfrei, bis ich von der Seite weg navigiere. Wenn ich den Browser neu lade, kann ich sehen, dass das Ereignis 'disconnect' vom Client gesendet wird, aber das Ereignis 'disconnect' vom Server wird für eine sehr lange Zeit nicht ausgelöst (vermutlich, wenn der Client-Takt abläuft). Dies ist ein Problem, da ich einige Aufräumarbeiten auf dem Server vornehme, wenn der Client die Verbindung trennt. Wenn der Client neu geladen wird, werden mehrere Verbindungsereignisse angezeigt, bevor die Verbindung getrennt wird. Ich habe versucht, im Ereignis 'beforeunload' des Fensters auch manuell eine Trennungsmeldung vom Client zu senden, aber ohne Erfolg. Irgendwelche Ideen?

Ich habe den socket.io-Server debuggt und kann bestätigen, dass Manager.prototype.onClientDisconnect nur aus "Close Timeout" -Gründen betroffen ist.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage