In socket.io Blog sagt, dass in der Version 1.2.1socket.io 1.2.1 Wie doppelte Ereignisse beheben, nachdem wieder
„Readme fixes Doppelereignis im Beispiel bei Wiederverbindung zu verhindern [@nkzawa ] "
Ich habe die Version 1.2.1 für den Client & Server heruntergeladen, aber nach dem erneuten Verbinden ruft sie immer noch Ereignisse zweimal auf. Oder sollte ich etwas mit Readme-Datei tun?
Ich habe versucht, auf diese Weise wieder zu verbinden und es hat funktioniert, aber kann ich es für die Produktion verwenden. Ist es der richtige Weg?
socket.disconnect()
// remove socket object
socket = undefined
// connect again
socket = io.connect({'forceNew':true})
Wie gesagt, ist es richtig oder hat es Nachteile?
UPDATE- Code hinzugefügt
Server-seitigen Code
socket.on('client_emited', function(data){
socketIO.to('this socket id').emit('server_emitted');
})
Client-Seite Code
var socket;
function connectSocket() {
if (!socket)
socket = io({'forceNew':true});
else
socket.connect();
}
socket.on('connect', function(){
console.log('CONNECTED TO SOCKET.IO SERVER. SENDING "client_emited" EVENT');
socket.emit('client_emited');
});
socket.on('server_emited', function(){
console.log('RECEIVED "server_emited" EVENT');
});
socket.connect(); // here console shows 'CONNECTED TO SOCK...' and 'RECEIVED "server_e...' 1 time
socket.disconnect();
socket.connect(); // here console shows 'CONNECTED TO SOCK...' 2 times and 'RECEIVED "server_e...' 4 times time
und der Server empfängt "client_emit" Ereignis zweimal
Das Problem in dem Code wahrscheinlich ist, dass Ihre Nachricht Event-Handler erstellt. Sie müssen sicherstellen, dass Sie diesen Code nur EINMAL aufrufen, oder Sie entfernen die Ereignisbehandlungsroutinen, bevor Sie neue starten. Bitte zeigen Sie uns diesen Code. – jfriend00
danke für die Antwort, wird in einer Minute – onar
Sir Ich korrigiere Code, um verständlich zu machen, wird es in 2-3 Minuten sein. während könntest du deine meinung über die zweite methode schreiben: zuerst desconnect, remove socket object ren connect wieder. Kann ich es benutzen? – onar