ソケット io サーバーで配列を構築し、それをクライアントに送信しようとしています。
var roomList = io.sockets.manager.rooms;
// new Array to save the clients per room
var clientsPerRoom = new Array();
//for (var i = 0; i < roomList.length; i++) {
for (var room in roomList) {
room = room.replace("/", "");
// get the clients per room
var clients = io.sockets.clients(room).length;
// saving it in the array at the name of the room
clientsPerRoom[room] = clients;
}
// transmit it to the client
io.sockets.emit('roomList', roomList, clientsPerRoom);
クライアント側
var clients = 1;
for (room in roomList) {
if (room.length > 0) {
room = room.replace("/", "");
clients = clientsPerRoom[room];
console.log("ROOM: '" + room + "' has '" + clients + "' CLIENTS");
}
}
クライアントでは、「clientsPerRoom」は「[]」(空?) であるため、「clients」は「定義されていません」。私は何を間違っていますか?
ユーザーが接続している場合、サーバーからのコンソール ログの値は 1 です。より多くのユーザーがオンラインである場合、それでも 1 ですが、少なくともこの値をクライアントに送信する必要があります。
ありがとう