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

Posted

技术标签:

【中文标题】Socket.io 将数组传递给客户端【英文标题】:Socket.io pass array to client 【发布时间】:2016-01-10 03:08:17 【问题描述】:

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

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

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

【问题讨论】:

这是一个对象,而不是一个数组。 @Matt,你是对的。它是 而不是 []!没注意到。关于如何通过它的任何想法? 【参考方案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 变量实际上是一个对象,其属性:键等于用户名:用户名,我只需要它的属性名称或键。在这种情况下,我得到了钥匙。

【讨论】:

以上是关于Socket.io 将数组传递给客户端的主要内容,如果未能解决你的问题,请参考以下文章

socket.io(转载)

socket.io 客户端到客户端消息传递

socket.io简单总结

socket.io 中文手册 socket.io 中文文档

socket.io 中文手册 socket.io 中文文档

socket.io 中文手册 socket.io 中文文档