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

我试图将一个名为“用户名”的数组传递给客户端。 以下是服务器端的代码:

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]);} }); 

警报只是“未定义”。 我究竟做错了什么?

刚刚find了答案!

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

这就像@Matt所说的那样解决了我的问题,用户名variables实际上是一个具有属性:key等于username:username的对象,我只需要它的属性名称或者键值。 在这种情况下,我得到了关键。