Ich habe Online-Zähler in der Navigationsleiste, die mit online
Ereignis verbunden ist. Es zeigt die Anzahl der Online-Benutzer richtig an, aber wenn ich mich in einem anderen Fenster verbinde, wird der Zähler nicht aktualisiert (noch wenn ich das Fenster schließe). Es zeigt auch die richtige Nummer nach der Aktualisierung.Client-Daten werden nicht aktualisiert von Socket.io
Server
let currentConnections = {};
let numberOfConnections =() => Object.keys(currentConnections).length;
io.sockets.on('connection', (socket) => {
console.log('New user connected.');
currentConnections[socket.id] = { socket: socket };
socket.emit('online', { count: numberOfConnections() });
socket.on('disconnect',() => {
console.log('User has disconnected.');
delete currentConnections[socket.id];
socket.emit('online', { count: numberOfConnections() });
});
});
Kunde
var socket = io.connect('http://localhost:3000');
socket.on('online', function(data) {
$("#online").html(data.count);
console.log(data);
});