2016-06-15 14 views
1

Ich habe ein Problem mit der Anwendung socket.io für nodejs. Ich habe mehrere Browserfenster in meiner Anwendung, alle sind mit Nodejs verbunden. Die Anwendung ist noch nicht schwer geladen. Manchmal ist etwas an socket.io gebunden, so dass der Befehl .emit() im Browser nicht ausgeführt wird (d. H. Der Server sieht ihn nicht). nodejs console/logs zeigt keine Abstürze/Ausnahmen. Die Anwendung bleibt etwa 30 Sekunden lang in diesem gesperrten Zustand und nimmt dann die korrekte Arbeit wieder auf. Das Browser-Konsolenprotokoll zeigt 400 Fehler für eine der SocketIO-Anfragen.Angehaltene Verbindung mit socket.io im xhr-Polling-Modus

Irgendwelche Ideen, warum dies passiert und wie es zu heilen/zu diagnostizieren?

Antwort

0

Ich habe eine Ursache für dieses Problem gefunden. Chrome hat ein Limit von 6 offenen HTTP-Anforderungen. Sie können also nicht mehr als 6 Tabs haben, die den socketio XHR-Poll-Austausch mit dem Server durchführen. Die 7. Registerkarte würde sich so verhalten, als wäre der Server nicht verfügbar.

Reduzieren Sie die Anzahl der Verbindungen, oder verwenden Sie Websocket-Modus, es funktioniert gut.