当所有客户端断开连接时,保持socket.io房间活着?

时间:2014-05-07 11:10:29

标签: node.js sockets

我有一个多人游戏,游戏室内置Node.js和socket.io。每个游戏室有4个玩家,第一个玩家加入时会创建房间。当我向连接到房间的客户端发送数据时,我总是执行以下检查以确保他们仍在房间内(sock_id是客户端的套接字ID):

if(io.sockets.manager.rooms['/' + room].indexOf(sock_id) > -1){
    ...
}

如果玩家离开房间,他将被机器人玩家取代。但是,当所有4名玩家断开连接时,我遇到了问题。房间被自动销毁,上面的检查会引发错误cannot call method indexOf of undefined,表明房间不存在。解决此问题的一种方法是添加一个检查,以确保节点服务器上的每个此类检查都存在空间(并且有很多)。

但是,我想知道即使所有客户都断开连接,是否有可能以某种方式保持房间活着。当问题结束时,我可以摧毁房间,问题就解决了。

0 个答案:

没有答案