我正在撰写一款多人Connect 4游戏。当玩家进行移动时,该移动将被写入包含Connect 4板上每个位置状态的文件。
我目前有一个带有延迟循环的PHP脚本,用于检查自上一次循环迭代以来的更改,如果有更改,PHP脚本会返回要发送给播放器的更新文件。
这种方法非常低效且凌乱;是否有更好的方式立即通知游戏中的变化?
此外,我尝试使用inotify,但它似乎无法在我的服务器上运行。 (Mac OS X Server 10.8,这可能就是为什么......)
答案 0 :(得分:0)
在后台进行轮询对于获取此类更改并不常见。你能更具体地了解你不喜欢的东西吗?
如果您正在寻找更聪明的东西,每个玩家都可以与“游戏会话”API异步打开保持活动请求。实现可以监视文件的更改,并在检测到更改时发送下一个块。更改是来自文件还是数据库取决于服务器实现。当然,您的客户端应用程序需要确保请求保持打开状态,并在关闭时重新连接。
答案 1 :(得分:0)
在PHP中很难,使用node.js怎么样?它内置了这些功能。