小编典典

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

ajax

我正在尽我所能。

到目前为止,我已经完成的工作:我将使用setTimeout或使用JavaScript运行游戏setInterval。它不是闪光灯或任何特殊的东西。到目前为止,我所做的就像一次测试运行(以便您可以更好地理解),它几乎是循环Ajax,以保持将请求发送到PHP页面的速度尽可能快,然后PHP
$_GET从请求中读取URL,然后PHP使用来编辑一个名为p1.html的文件$_GET,该文件只是播放器1的x和y轴坐标。因此,在播放器2的浏览器中,它几乎执行了我上面所说的操作,现在,当它接收到Ajax请求时,它将接收播放器1的坐标。因此JavaScript会执行它的操作,并将播放器1移到播放器2的浏览器上。那就是我已经做的自己

话虽如此,这是我到目前为止所做的,但是如果我想像在线格斗游戏或实时侧滚动游戏那样,这还不够快。这就是我需要帮助的地方。我在w3schools.com上了解很多东西,但我只是不知道如何完成这项工作。可能就是这样。我只需要浏览器1,就可以将数据发送到浏览器2,实际上是这样的“
1,100,200”或更久一点,然后让浏览器2将数据作为JavaScript中的变量(诸如x="received data";)读取,仅此而已。JavaScript将完成其余的工作。

我确定我可以对自己需要的所有东西进行编程,但是对于每秒从A点到B点发送数据(例如每秒50次),我对此一无所知。甚至没有名字。最后,URL和示例将非常好(更清楚)。特别是如果它已经在w3schools.com上(包含示例),而我只是错过了。


阅读 135

收藏
2020-07-26

共1个答案

小编典典

答案很简单:使用websockets。它们允许在两个方向上立即推送数据,以实现看似瞬时的交互。它们消除了从缓慢而繁琐的客户端(包括服务器)中提取数据的需求。请注意,这是我最喜欢的游戏中用于推送通知的解决方案。

您可能对PHP上的websockets上的介绍感兴趣。但是请注意,对于长连接处理和实时游戏,PHP实际上并不是最有效的解决方案(您可能更喜欢Go,node.js,java等)。

2020-07-26