首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与socket.io的匹配-依赖于setInterval或套接字调用?

与socket.io的匹配-依赖于setInterval或套接字调用?
EN

Stack Overflow用户
提问于 2016-08-04 10:35:09
回答 1查看 1.4K关注 0票数 1

我正在开发一个游戏,我的后端是用NodeJS编写的,我使用socket.io进行实时通信。

我的游戏的一个特点是婚介。基本上,如果两个以上的玩家是在相亲期间,我的应用程序将为他们创建一个游戏室(特殊的socket.io室),并开始游戏。

有两种方法可以做到这一点:

  • 在setInterval上创建一个NodeJS。在间隔中,检查playersInMatchmaking数组。如果数组中有两个以上的玩家,则创建游戏室。只要服务器在线,我就会循环。
  • 不要依赖setInterval,每次我收到对socket.on("matchmaking start")socket.on("matchmaking stop")的调用时,都要检查playersInMatchmaking数组

使用某些方法有什么好处吗?setInterval听起来更容易,因为我可以将匹配算法与套接字逻辑分离,但是由于匹配算法将在循环中运行,而不是套接字事件,所以它的性能将更低。

你认为如何?你还有其他更好的想法吗?

EN

回答 1

Stack Overflow用户

发布于 2016-09-16 10:23:37

通过使用事件,您将最大限度地利用socket.io和实时通信。如果除了对算法进行解耦之外,没有其他原因,则应该使用事件。如果目前没有用户/玩家参与或搜索比赛,则没有理由一次又一次地运行循环。

如果间隔不够小(例如,5秒),我还会考虑当Player1被放入队列时会发生什么,Player2也会出现在队列中,并且在两个间隔之间,Player1取消了对对手的搜索,因为他已经厌倦了等待。因此,除了您提到的事件触发系统(性能)之外,事件触发系统的主要好处是没有真正的延迟(除了网络、代码循环、抖动、..)。事情马上就会发生

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38764972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档