我正在尝试将一个名为“用户名”的数组传递给客户端。 这是服务器端的代码:
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/