当socket.io房间清空时,你能解雇一个事件吗?

时间:2012-11-12 19:33:45

标签: socket.io

背景:我正在制作一个非常基本的多人在线游戏服务器,其中每个游戏都包含在它自己的房间及其游戏数据(包括其房间名称)中的GAMES数组中,我想从数组中删除游戏数据当房间不复存在时。

我希望有类似这样的东西

socket.io.rooms.on('disconnect', function(roomID){
 //PSEUDO CODE// 
 //delete GAMES.getby(gameID:roomID)//
});

否则我计划循环遍历游戏阵列,并在套接字断开连接并删除任何不一致时将房间名称与io.sockets.manager.rooms数据进行比较。但我相信必须有一个更优雅的解决方案。

1 个答案:

答案 0 :(得分:3)

io.sockets.clients('room')会为您提供当前房间内的套接字列表,因此您可以执行以下操作:

if(io.sockets.clients('room').length > 1){
     //delete room logic here
 }

希望有所帮助!