【问题标题】:Handling timeout for multi players games in node js.在节点 js 中处理多人游戏的超时。
【发布时间】:2023-03-19 01:13:01
【问题描述】:

我正在编写一个国际象棋游戏的服务器,其中组织了活动,成千上万的玩家将参加一个活动,我们将在 2 名玩家之间创建比赛,即如果有 1000 名玩家,则意味着 500 场比赛,并且在比赛中用户有有限的时间来轮到他轮到他的 N 轮,如果超时服务器将代表这个用户轮流。万一中间打得差不多了,我们还是要完成比赛。

我的问题是如何管理剩余时间并获取超时玩家的信息。

谁能建议我处理这类游戏的最佳方式。

【问题讨论】:

  • 我看到您将套接字作为标签,所以我认为您知道如何使用它们,您只需与用户保持连接,您必须在服务器上设置计时器。虽然我不明白为什么你要在时间用完时继续游戏,因为这是结束游戏的条件之一,如果玩家关闭游戏,你可能会有某种“暂停”,因为如果有 1 个玩家断开连接,因为他可能有发出并回来。
  • 谢谢@FilipRistic 是的,我对套接字有一个想法,但我们不能依赖客户端,因为用户可以选择通过按I am back button 回到游戏,在这种情况下他可以玩他剩下的回合。目前,我正在使用 mongodb-cron[npmjs.com/package/mongodb-cron] 模块。并且它经常查询数据库以检查用户是否有时间没有轮到他玩。但我不确定每秒或更少查询数据库是否有效。服务器上的数千或缺少用户的计时器是什么意思?
  • 并且有可能他在事件声明时直到事件​​结束才打开他的应用程序,但我们需要通过随机移动轮到对手来完成他的游戏。
  • 这些都是现在的实现细节,你需要找出最适合你的需求,我只是给你一个想法。
  • 感谢@FilipRistic。还有其他人可以帮助我吗?

标签: node.js mongodb sockets redis


【解决方案1】:

你可以试试Date.now()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-10
    • 2012-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多