Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中检查文件中的更改_Php_Multiplayer_Inotify - Fatal编程技术网

如何在PHP中检查文件中的更改

如何在PHP中检查文件中的更改,php,multiplayer,inotify,Php,Multiplayer,Inotify,我目前正在写一个多人连接4游戏。当玩家移动时,该移动将写入包含Connect 4板上每个位置状态的文件 我目前有一个带有延迟循环的PHP脚本,该脚本检查自上一次循环迭代以来的更改,如果有更改,PHP脚本将返回要发送给播放器的更新文件 这种方法极为低效和混乱;有没有更好的方法可以即时通知游戏中的更改 此外,我还尝试使用inotify,但它在我的服务器上似乎不起作用。Mac OS X Server 10.8,这可能就是为什么在后台进行轮询对于获得这样的更改并不少见。你能更具体地说明你不喜欢什么吗 如

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

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

这种方法极为低效和混乱;有没有更好的方法可以即时通知游戏中的更改


此外,我还尝试使用inotify,但它在我的服务器上似乎不起作用。Mac OS X Server 10.8,这可能就是为什么在后台进行轮询对于获得这样的更改并不少见。你能更具体地说明你不喜欢什么吗


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

在PHP中很难找到它,使用?它内置了这些功能。

您正在进行什么样的更改???为什么不使用mySQL数据库并在那里记录更改?那么为什么您需要向播放器发送更新的文件?你不能重新呈现页面吗?为什么你需要一个文件使用web套接字或像memecache这样的缓存系统。因为那样会使用不必要的带宽。我可以每隔一秒钟左右使用ajax轮询服务器,但我认为只有在发生实际更改时才应该发送文件。