用于从 Javascript 每毫秒调用一次服务器的最佳技术是啥?

Posted

技术标签:

【中文标题】用于从 Javascript 每毫秒调用一次服务器的最佳技术是啥?【英文标题】:What is the best technology to be used to make a server call per millisecond from Javascript?用于从 Javascript 每毫秒调用一次服务器的最佳技术是什么? 【发布时间】:2015-11-04 05:01:37 【问题描述】:

我有一种情况,我要在网页上运行游戏。 每毫秒后,我将更新网页上的精灵位置。 精灵位置将由服务器提供。

请建议最好的方法。

【问题讨论】:

普通网络技术、普通网络硬件和普通网络连接可能无法实现您所要求的。您要求从服务器接收更新并每秒绘制 1000 次更新。如果您更多地描述您的应用程序的实际架构以及您想要实现的目标,我们可能会帮助您确定一些仍然可以提供适当体验的替代方案,但在典型的 Web 硬件和典型的网络环境。 谢谢。我很感激。这是我想要做的。 ets 以简单突围游戏为例。在简单的基于摇摆的应用程序中,我们只需用新的精灵坐标(球、桨、砖等)更新每毫秒的帧数。但是如果我想在 web 上开发相同的应用程序,保持相同的代码库,只需替换“视图”部分与 html。有没有办法实现它?还是我需要重写整个应用程序来处理 javascript 端的所有内容? 您是否有任何具体原因要求您的 Breakout 游戏中所有精灵的位置必须在服务器上计算,然后再与客户端通信?是否存在无法在浏览器中计算动画的架构原因(除了必须编写更多代码)?我之所以这样问,是因为从服务器到客户端实时通信实时动画,并且对客户端动作做出快速响应而没有延迟是一项艰巨而复杂的任务,即使这样也有一些限制。我儿子一直在告诉我多人 Xbox 游戏的局限性。 我们已经开发了一个秋千应用程序。我们希望它在网络上。更具体地说,在网络浏览器上。所以重用代码只是一个问题。但是,是的,我明白了你的意思,这是有道理的。我搜索了在客户端做这些事情。有很多选择。您有什么想法是实现它的最佳方式吗? 【参考方案1】:

从我的路由器到 ISP 网关的网络连接目前是 20 毫秒,因此每毫秒更新一次可能不是最好的策略。

一个比较合理的帧速率是 60 帧/秒。因此,如果我要尝试这个,我可能会尝试一次发送多个坐标。这假设您提前几毫秒知道一些坐标。

也许提供更多关于您想要实现的目标的信息可能会有所帮助。

【讨论】:

谢谢安德鲁。让我们以简单的突破游戏为例。在简单的基于摇摆的应用程序中,我们只需用新的精灵坐标(球、桨、砖等)更新每毫秒的帧数。但是如果我想在 web 上开发相同的应用程序,保持相同的代码库,只需替换“视图”部分与 HTML。有没有办法实现它?还是我需要重写整个应用程序来处理 javascript 端的所有内容? @Abhijit 很难说 SO,因为我们不知道你的 I/O 部分和实际的游戏逻辑是如何解耦的。

以上是关于用于从 Javascript 每毫秒调用一次服务器的最佳技术是啥?的主要内容,如果未能解决你的问题,请参考以下文章

从ArrayAdapter每毫秒更新Android ListView中的一行

TimerTask vs Thread.sleep vs Handler postDelayed - 每N毫秒调用一次函数最准确?

稳步减慢从 javascript 对 WCF 服务的 ajax 调用

JavaScript中定时调用函数 test()如何写

Javascript - 我编写的用于淡入图像的函数出现问题

setTimeout()