socket.io erstellt nach dem Wiederverbinden eine weitere Verbindung

8

Ich versuche eine einfache Chat-Anwendung hier mit socket.io und node.js. Jedes Mal, wenn ich den node.js-Server neu starte, stellt socket.io automatisch eine Verbindung her und erstellt irgendwie eine weitere Verbindung zum Server, d. H. Der Client empfängt jetzt zweimal die gleiche Chat-Nachricht. Wie behebe ich das?

    
boh 28.05.2013, 09:03
quelle

2 Antworten

13

Standardmäßig trennt die Verbindung socket.io die Verbindung wieder, die das connect -Ereignis erneut ausführt. Jedes Mal, wenn Sie die Verbindung wiederherstellen, fügen Sie einen weiteren Ereignis-Listener hinzu, um Nachrichten zu empfangen. So erhalten Sie mehrere Nachrichten gleich Server Neustarts / Verbindungsverlust.

%Vor%

Sie sollten die erste Verbindung mit once anstelle von on hören, die eventhandler das erste Mal ausführt. Probieren Sie

aus %Vor%

statt

%Vor%     
user568109 28.05.2013, 15:52
quelle
5

Versuchen Sie stattdessen, index.html auf diese Weise zu schreiben:

%Vor%

Es kann sein, dass die anderen 2 eventlistener beim connect-Event registriert wurden. Wenn der Client getrennt wird, bleiben die anderen 2 Listener hier und werden nicht abgemeldet.

    
klchow916 26.08.2013 13:17
quelle

Tags und Links