0
私はonline
イベントで接続されているナビゲーションバーにオンラインカウンタを持っています。それはオンラインユーザーの数を正しく示していますが、別のウィンドウで接続すると、カウンタは更新されません(ウィンドウを閉じても表示されません)。リフレッシュ後も正しい番号が表示されます。クライアントデータはSocket.ioによって更新されません
サーバー
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() });
});
});
クライアント
var socket = io.connect('http://localhost:3000');
socket.on('online', function(data) {
$("#online").html(data.count);
console.log(data);
});