套接字.IO将数组传递给客户端

Socket.io pass array to client

本文关键字:客户端 数组 IO 套接字      更新时间:2023-09-26

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

警告只是"未定义"。我做错了什么?

刚刚找到了答案!

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的对象,我只需要它的属性名称或键。在本例中,我获取的是键