gpt4 book ai didi

javascript - 断开 Sockect.io 房间中的所有用户

转载 作者:行者123 更新时间:2023-11-30 11:39:20 24 4
gpt4 key购买 nike

我一直在尝试根据管理员的意愿断开所有用户与房间的连接。我可以从房间获取 socket ID,但在尝试断开连接或离开房间时出错

这就是我的连接方式:

 var io = require('socket.io'),
http = require('http'),
server = http.createServer(),
io = io.listen(server);

io.sockets.on('connection', function(socket){
//socket.join('groupname');
console.log('User connected');

socket.on('disconnect', () => {
console.log('User disconnected...');

})

//This is how the room is connected to
socket.on('group', function(groupname) {
socket.join(groupname);
});

socket.on('completed', function(groupname) {
var users = io.nsps["/"].adapter.rooms[groupname]
console.log(users)
for(var i = 0; i < users.length; i++){
console.log(users[i])///undefined
}

});

})

也试过

 socket.on('completed', function(groupname) {
var users = io.nsps["/"].adapter.rooms[groupname]
Object.keys(users.sockets).forEach( function(socketId){
console.log(groupname+" client socket Id: " + socketId );
socketId.disconnect();
});
});

感谢任何帮助罗伊

最佳答案

完成了,特别感谢 tienthanh8490,用于阐明 Socket.io 中的数据管理

我认为我之前所做的,尤其是我的第二个例子是;试图在字符串上触发函数!

总之,这行得通

 socket.on('completed', function(groupname) {
io.of('/').in(groupname).clients(function(error, clients){
if (error) throw error;
for(var i=0; i <clients.length; i++){
io.sockets.connected[clients[i]].disconnect(true)
}
});

这会断开房间中的所有用户

关于javascript - 断开 Sockect.io 房间中的所有用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43296140/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com