背景:我正在制作一个非常基本的多人在线游戏服务器,其中每个游戏都包含在它自己的房间及其游戏数据(包括其房间名称)中的GAMES数组中,我想从数组中删除游戏数据当房间不复存在时。
我希望有类似这样的东西
socket.io.rooms.on('disconnect', function(roomID){
//PSEUDO CODE//
//delete GAMES.getby(gameID:roomID)//
});
否则我计划循环遍历游戏阵列,并在套接字断开连接并删除任何不一致时将房间名称与io.sockets.manager.rooms数据进行比较。但我相信必须有一个更优雅的解决方案。
答案 0 :(得分:3)
io.sockets.clients('room')
会为您提供当前房间内的套接字列表,因此您可以执行以下操作:
if(io.sockets.clients('room').length > 1){
//delete room logic here
}
希望有所帮助!