【发布时间】:2018-08-10 20:28:58
【问题描述】:
我是 nodejs 的新手。我打算开发一个游戏的服务器端,每个玩家都有一个固定的时间,当轮到他/她时,剩余的时间应该开始倒计时,直到他/她提交他/她的选择。
我们无法在客户端处理此问题,因为用户可能会在一段时间后关闭应用程序(或断开与互联网的连接或关闭设备),而我们没有他/她经过的时间和他/她返回的时间,他/她会在服务器中看到他/她上次保存的时间,这是不正确的。
另一种选择是每隔 15 秒将客户端与服务器同步一次,这可以以某种方式解决问题,但在某些情况下,时间不会完全正确。我们的游戏高度依赖时间。此外,我猜它会在服务器上产生很多过载和来自客户端的许多请求。
第三种选择是为服务器中的每个玩家设置计时器,这会给服务器带来额外且繁重的负载,并且节点是单线程,这使得该选项无法实现。
什么是最好的解决方案? tnx
更新
我忘了说对于用户匹配,我使用套接字。
另一点是我们知道用户什么时候玩(我们确定时间),甚至知道玩家的数量。我的意思是,我们面对很多用户上网和一起玩是不可能的。我们知道在晚上 8 点到 8:30 之间,最多有 60 名玩家在线。
这个问题很重要,因为每个用户断开连接的时间有限。我的意思是无论您有多少剩余时间,您都必须在 1 分钟后重新连接。如果你不回来,你就迷路了。此外,整个时间都断开连接是对您剩余时间的惩罚。我的意思是,如果你有 80 秒并断开连接 50 秒,那么你的剩余时间现在是 30 秒。
【问题讨论】:
-
你在使用套接字吗?问候。
-
是的,我忘了说。
标签: javascript node.js