Ich teste socket.io und tun öffnete eine einfache Chat-Nachricht (nach dem Tutorial in der offiziellen Website)Socket.io emittieren Duplikat auf dem zweiten Fenster
I 2 Fenster:
Wenn ich emittieren die Ereignis im ersten Fenster geöffnet, es ist ok.
Aber, wenn ich das Ereignis im zweiten Fenster ausstrahle, sende das Ereignis 2 mal (dupliziert).
PS: wenn ich ein drittes Fenster zu öffnen, das die Veranstaltung 3 mal senden
Node.js Code:
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
io.on('connection', function(socket) {
socket.on('chatMessage', function(msg){
io.emit('chatMessage', msg);
});
});
});
Kunde:
methods: {
sendMessage: function() {
socket.emit('chatMessage', this.text);
}
socket.on('chatMessage', function(msg){
console.log('Client side message: ' + msg)
vmIndex.messages.push(msg);
});
Dies liegt daran, dass Sie jedes Mal einen Verbindungs-Listener erstellen, wenn jemand die Route "/" aufruft. Versuchen Sie, den socket-io-Code außerhalb der "/" route-Funktion zu verschieben. –
danke. ist es!! füge die Antwort hinzu und markiere als gelöst –