php - 在线游戏,或比 ajax 更快的发送/接收数据的东西

标签 php javascript ajax online-game

我会尽量缩短。

到目前为止我做了什么: 我的游戏将通过使用 setTimeoutsetInterval 的 JavaScript 运行。它不是闪光灯或任何特别的东西。到目前为止,我所做的就像测试运行(这样你可以更好地理解),几乎是 Ajax 循环,以尽可能快地向 PHP 页面发送请求,然后 PHP 读取 $_GET 在请求的 url 中,然后 PHP 使用 $_GET 编辑一个名为 p1.html 的文件,它只是玩家 1 的 x 和 y 轴坐标。所以在玩家 2 的浏览器中,它几乎完成了我上面所说的,现在当它收到 Ajax 请求时,它将收到玩家 1 的坐标。因此 JavaScript 执行它所做的,并在玩家 2 的浏览器上移动玩家 1。这就是我自己做的,我测试了它,是的,它可以工作,是的,当我修复所有错误和东西时,它会永远持续下去。

话虽如此,这就是我到目前为止所做的,但如果我想要一款在线格斗游戏或实时横向卷轴游戏,这还不够快。这就是我需要帮助的地方。我在 w3schools.com 上知道很多东西,但我只是不知道如何完成这项工作。大概就是这样。我只需要浏览器 1,将数据发送到浏览器 2,实际上是这样的“1,100,200”或更长一点,并让浏览器 2 将该数据作为 JavaScript 中的变量读取(类似于 x="received data"; ),仅此而已。 JavaScript 将完成剩下的工作。

我确信我可以自己编写所需的一切程序,但对于以每秒 50 次的速度从 A 点向 B 点发送数据,我对此一无所知。连名字都没有。最后,网址和示例会非常好(更清楚)。特别是如果它已经在 w3schools.com 上(带有示例)而我只是错过了它。

最佳答案

您可以使用 websocket

The advantage with WebSockets (over AJAX) is basically that there's less HTTP overhead. Once the connection has been established, all future message passing is over a socket rather than new HTTP request/response calls. So, you'd assume that WebSockets can send and receive much more messages per unit time. Turns out that that's true. But there's a very bitter reality once you add latency into the mix.

WebSockets are roughly 10-20% faster than AJAX

source

当我们在 php 中使用 ajax 时会发生什么

  1. 它打开一个到 apache 服务器的新连接
  2. 比 apache 寻找 php 脚本并启动它
  3. 现在 php 脚本将连接到服务器进行查询并返回结果。

但 websocket 所做的是消除 2 个连接进程,并且只会向服务器发送一条消息。服务器已经连接到sql server

另一个好处是客户端和服务器之间的连接保持打开状态,服务器可以向客户端发送消息。在 ajax 中你需要每次都调用

关于php - 在线游戏,或比 ajax 更快的发送/接收数据的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12814624/

相关文章:

javascript - 我怎样才能在 Magento 中修改这个价格函数

php - 在 Centos 6.5 上安装 Mycrypt

php - MySQL "no database selected"

javascript - 使用 Material UI 进行 React 钩子(Hook)

javascript - 我可以为特定功能禁用 ECMAscript 严格模式吗?

jquery - 使用AJAX加载方法加载jsp页面

php - 如何更改 zend 框架布局中的元标记

php - 执行 AJAX 请求后未应用 CSS

javascript - 如何在 jquery/javascript 中更改点击文本的颜色?

javascript - JS : keyEvents won't work correctly - work with +1 key(press-down-up)