Socket.io 将数组传递给客户端

Socket.io pass array to client

我正在尝试将一个名为 "usernames" 的数组传递给客户端。 这是服务器端的代码:

var usernames = {};
var numUsers = 0;

    socket.on('online users', function () {
        io.emit('connected_users', {
            name: usernames,
            total: numUsers
        });
    });

这是客户网站:

          var online=[]
          var onlineNum=0;

          function headcount(){
            socket.emit('online users');
          }

          socket.on('connected_users', function (data){
            onlineNum=data.total;
            for(i=0; i<onlineNum; i++){
                online[i]=data.name[i];
                alert(data.name[i]);}
          });

警报只是 "Undefined"。 我做错了什么?

刚刚找到了这个问题的答案!

socket.on('connected_users', function (data){
        onlinecounter=data.total;
        alert(data.total);
        for (var key in data.name) {
            online[i]=key;
            alert(key);
        }
      });

正如@Matt 所说,这解决了我的问题,usernames 变量实际上是一个 property:key 等于 username:username 的对象,我只需要 属性 名称或键它的。在这种情况下,我得到了钥匙。