我正在用node做一个多人游戏。处理玩家的最简单方法是将其视为与套接字对象相同;例如year = 2012
,socket.name
,socket.health
等。如果某个玩家需要访问其他玩家的信息,我可以这样做:socket.faction
。但是,当套接字断开连接时,将从io.sockets.connected中删除该套接字,如果我按照上述说明进行操作,则断开连接后,播放器将被删除。相反,我需要将断开连接的播放器仅视为afk,但仍保持连接。因此,我需要将套接字保留在io.sockets.connected[customSocketIdList[i]].faction
中,并在游戏结束时手动删除它们。最好的方法是什么?
我唯一想到的替代方法是在服务器端放置一个由其io.sockets.connected
索引的播放器对象数组。但是,仅能够访问断开连接的套接字对象将为我省去很多麻烦。虽然我遇到的缺点是尝试执行访问其他播放器目标的套接字对象之类的操作时,但最终却写出了如此长的荒谬代码:
socket.id
当然有更好的方法吗?还是这只是我想做的事固有的?