所以,使用socket.io 版本< 1.0 你可以使用:
var clients = io.sockets.clients('room');
获取房间内的所有插座'
。然而现在使用最新版本的socket.io这是不可能的,我还没有找到适用于最新版本的解决方案,我不希望降级版本来运行我的应用程序。
答案 0 :(得分:0)
您可以使用套接字Redis Adapter来管理SocketIO会议室。
const io = require('socket.io')(3000);
const redisAdapter = require('socket.io-redis');
io.adapter(redisAdapter({ host: 'localhost', port: 6379 }));
io.on('connection', function(client) {
//Get allRooms by Redis Adapter
io.of('/').adapter.allRooms((err, rooms) => {
for (let room of rooms) {
//Handle your room
}
})
})
希望这有帮助!
答案 1 :(得分:0)
setInterval(function() {
// do something
}, 4000);
似乎可以做到这一点!
答案 2 :(得分:0)
io.in('room').clients((error, clients) => {
if (error) throw error;
console.log(clients); // => [Anw2LatarvGVVXEIAAAD]
});
并获取客户端ID的套接字:
io.sockets.sockets[client]
(是,是2次套接字)