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

时间:2015-10-12 15:12:39

标签: javascript node.js websocket socket.io chat

我试图传递一个名为" 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]);}
          });

警报只是&#34;未定义&#34;。 我做错了什么?

1 个答案:

答案 0 :(得分:1)

刚刚找到答案!

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变量实际上是一个对象,其属性:key等于username:username,我只需要它的属性名称或密钥。在这种情况下,我得到了钥匙。

相关问题