我想要创建一个nodejs应用程序后需要一些指导。 这是一个问答游戏,2人将#34;战斗"彼此回答了5个问题。 问题是我不知道如何实施"州"等待找对手的用户
我是否可以使用一个模块来保存表中用户的状态,然后将它们放在同一个房间内#34;玩吗?或者我应该如何考虑实现这一目标?
我正在考虑这样的事情:
任何指导都会非常有用。有关我想要实现的更多信息,请查看mathfights.com,您可以在其中查看我正在讨论的示例。
答案 0 :(得分:1)
您可以使用等待匹配的所有用户创建数组或集合(ES6),假设您将其称为waitingList。当用户单击播放按钮时,您将其套接字推送到waitingList中。然后你遍历waitingList,根据用户的杠杆,得分等找到可能的匹配...之后你有两个或更多的插座(玩家)可以进入一个匹配,只需你从waitingList中删除它们然后你发送它们你的游戏逻辑。当然这个解决方案是基于内存保存。例如,如果您的服务器崩溃或重新启动,您将丢失所有正在运行的游戏,我不知道您现在是否重要,但您可以使用redis或类似的数据库来解决此问题。