我正在开发一个游戏,我的后端是用NodeJS编写的,我使用socket.io进行实时通信。
我的游戏的一个特点是婚介。基本上,如果两个以上的玩家是在相亲期间,我的应用程序将为他们创建一个游戏室(特殊的socket.io室),并开始游戏。
有两种方法可以做到这一点:
socket.on("matchmaking start")或socket.on("matchmaking stop")的调用时,都要检查playersInMatchmaking数组使用某些方法有什么好处吗?setInterval听起来更容易,因为我可以将匹配算法与套接字逻辑分离,但是由于匹配算法将在循环中运行,而不是套接字事件,所以它的性能将更低。
你认为如何?你还有其他更好的想法吗?
发布于 2016-09-16 10:23:37
通过使用事件,您将最大限度地利用socket.io和实时通信。如果除了对算法进行解耦之外,没有其他原因,则应该使用事件。如果目前没有用户/玩家参与或搜索比赛,则没有理由一次又一次地运行循环。
如果间隔不够小(例如,5秒),我还会考虑当Player1被放入队列时会发生什么,Player2也会出现在队列中,并且在两个间隔之间,Player1取消了对对手的搜索,因为他已经厌倦了等待。因此,除了您提到的事件触发系统(性能)之外,事件触发系统的主要好处是没有真正的延迟(除了网络、代码循环、抖动、..)。事情马上就会发生
https://stackoverflow.com/questions/38764972
复制相似问题