【问题标题】:Socket.io pass array to clientSocket.io 将数组传递给客户端
【发布时间】: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,你是对的。它是 {} 而不是 []!没注意到。关于如何通过它的任何想法?

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


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

【讨论】:

    猜你喜欢
    • 2012-09-10
    • 2018-08-13
    • 2013-02-21
    • 1970-01-01
    • 1970-01-01
    • 2019-03-16
    • 1970-01-01
    • 2016-12-22
    相关资源
    最近更新 更多