io.sockets.clients(room).length无法在新的socket.io版本中工作?

时间:2014-06-13 06:54:16

标签: node.js socket.io

io.sockets.clients(room).length在socket.io版本0.9.16& 0.9.17。

但似乎它不适用于socket.io版本1.0.4。

得到错误,例如" TypeError:对象#没有方法'客户'"

任何人都可以告诉我使用新socket.io需要进行哪些更改?

2 个答案:

答案 0 :(得分:2)

从上一个问题:Listing all the clients connected to a room in Socket.io version > 1

To get socket IDs of the clients connected to a room use this code:

var namespace = '/';
var roomName = 'my_room_name';
for (var socketId in io.nsps[namespace].adapter.rooms[roomName]) {
    console.log(socketId);
}

答案 1 :(得分:0)

io.sockets.clients(room)。根本不需要.length函数 您只需使用javascript代码即可构建客户列表

在服务器端继续创建新事件

var users={};
socket.on('addUser',function(username){
socket.username=username;
users[username]=username;
io.sockets.emit('updateUsers',users);
});

然后在客户端javascript文件中发出用户名

function addUser(){
socket.emit('addUser',prompt('What\'s your name'));
}