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

标签 javascript node.js websocket socket.io chat

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

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 的对象,我只需要它的属性名称或键。在这种情况下,我得到了 key 。

关于javascript - Socket.io 将数组传递给客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33084488/

相关文章:

javascript - 使用 localStorage 和 Websocket 自动授权

javascript - 如何以编程方式更改 html select 标记中的选定选项

javascript - 如何在循环中测试 readystate 和 status 以避免 else 分支?

javascript - 模拟虚拟世界 : continuous or discrete steps?

node.js - 使用 connect-assets 的 Node Express 中的图像路径

.net - 如何将 .NET WebSocket 客户端与 NTLM 代理结合使用?

javascript - 如何使用 vue-i18n 翻译渲染项目列表?

JavaScript 切换类

javascript - 将 thunk 传递给 puppeteer 的 $.eval

javascript - Socket.IO:断开连接时的 XHR 轮询延迟