0

我正在尝试创建一个实时多人网络游戏,现在我正在使用数据库来保存客户端操作,每个客户端都会向数据库发送一个 AJAX,以每隔 100 或 200 毫秒持续检查其他玩家的操作,我想知道是否有更好的方法来解决这个问题。

如果数据库中的某些内容发生变化,服务器是否有办法实际联系客户端?然后,如果一个客户端做了一个动作,服务器可以联系另一个客户端告诉它一个动作已经完成。或者有没有比为每个客户端检查数据库的恒定循环更好的方法呢?

4

2 回答 2

1

有多种 HTML5 WebSocket 解决方案(基本上是向实现推送和发送数据)已经变得越来越流行。Pusher是一种选择(也是我最喜欢的),但您可以通过搜索轻松找到其他选择。我还要看看什么是 Websockets?还有这个问题

于 2013-05-28T20:31:25.130 回答
1

我建议您研究一下客户端-服务器(websocket)框架,例如 socket.io 或 SignalR。

使用这样的框架,您可以维护与服务器的持久连接。您可以将其与 pub-sub 模型结合起来,以便在同一游戏中(在服务器端验证之后)向其他客户端发起/传递事件。

如果您想登录到数据库,那很好,但不会使用数据库(除非您绑定到 redis+pub-sub 作为例外)作为传输。

看:

  • 网络套接字
  • comet(长轮询、everscroll、iframe 事件)
  • 发布-订阅
于 2013-05-28T20:32:14.053 回答