【问题标题】:How to check for changes in a file in PHP如何在 PHP 中检查文件中的更改
【发布时间】:2012-10-11 01:12:21
【问题描述】:

我目前正在编写多人 Connect 4 游戏。当玩家移动时,该移动将写入包含 Connect 4 棋盘上每个位置状态的文件。

我目前有一个带有延迟循环的 PHP 脚本,它检查自上次循环迭代以来的更改,如果有更改,PHP 脚本会返回更新后的文件以发送给播放器。

这种方法效率极低且非常混乱;有没有更好的方法可以立即通知游戏的变化?

另外,我尝试使用 inotify,但它似乎不适用于我的服务器。 (Mac OS X Server 10.8,所以这可能就是为什么......)

【问题讨论】:

  • 你对 ??? 做了什么样的改变?
  • 为什么不使用 mySQL 数据库并在那里记录更改?
  • 那么为什么需要向播放器发送更新的文件呢?你不能重新渲染页面吗?
  • 为什么你需要一个文件使用 web sockets 或者像 memecache 这样的缓存系统。
  • 因为那会占用不必要的带宽。我可以每隔一秒左右使用 ajax 轮询服务器,但我认为只有在有实际更改时才应该发送文件。

标签: php multiplayer inotify


【解决方案1】:

在 PHP 中很难做到,使用node.js 怎么样?它内置了这些功能。

【讨论】:

    【解决方案2】:

    在后台进行轮询以获得这样的更改并不少见。你能更具体地说明你不喜欢什么吗?

    如果您正在寻找更聪明的东西,每个玩家都可以向“游戏会话”API 异步打开保持活动请求。该实现可以监视文件的更改并在检测到更改时发送下一个块。更改是来自文件还是来自数据库取决于服务器实现。当然,您的客户端应用程序需要确保请求保持打开状态并在关闭时重新连接。

    【讨论】:

      猜你喜欢
      • 2014-03-12
      • 2019-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-16
      • 2016-08-23
      • 1970-01-01
      相关资源
      最近更新 更多