我想制作一个简单的游戏(应用程序),网页浏览器游戏多人游戏,需要与服务器持续连接。
现在,我使用ajax和普通的php wamp服务器,但我认为这是错误的方法,因为我需要每秒从每个用户向服务器发送请求(用于更新)...这似乎是错误的..< br/>
我知道有很多 ape-project,但我需要一些用于 Windows 的东西(目前)
我还有什么选择? web-socket 有点棘手,很多旧浏览器都不支持,所以它不好......请帮忙,谢谢。
最佳答案
当今世界有大量的选择可供您选择。您正在寻找的是 PUSH 语义而不是 PULL,即您不想从客户端(定期)轮询服务器以获取新更新,但您希望服务器在数据可用时将数据推送到客户端。
您应该查看Publisher-Subscriber工作流程,其中每个用户可以拥有一个 channel ,其他用户可以在其中发布更新。然后,每个用户将订阅其 channel 以实时检索任何更新
市场上有很多现成的 pubsub 解决方案。我想到的一些是:
- Redis PubSub
- XMPP PubSub
- 如果您自己并不真正关心 PubSub 及其部署/工作/技术,请选择第三方服务提供商,例如 SuperFeedr , PusherApp , PubNub和别的。我认为市场上至少有 10 家这样的服务提供商。
您还需要一个将您的 pubsub channel 连接到浏览器上的客户端的传输(websocket 或在旧浏览器上为您模拟 websocket 的东西)。我想到的几个选项是:
- 使用 BOSH connection manager (长轮询)
- Socket.IO
- Sock.JS
- STOMP (面向流文本的消息传递协议(protocol))
- 如果您想使用免费开源软件 (FOSS),至少有 10 个这样的现成选项
希望对您有帮助。
关于php - 客户端与服务器持续通信 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11893001/