我目前正在写一个多人连接4游戏。当玩家进行移动时,该移动将写入包含Connect 4板上每个位置的状态的文件中。
我目前有一个带有延迟循环的PHP脚本,它检查自上一次循环迭代以来的更改,如果有更改,PHP脚本将返回更新后的文件以发送给播放器。
这种方法非常低效和混乱;有没有更好的方法来立即通知游戏中的变化?
另外,我也尝试过使用inotify,但是它在我的服务器上似乎不起作用。(Mac OS X Server 10.8,所以这可能就是为什么...)
发布于 2012-10-11 15:48:56
用PHP会很难,用node.js怎么样?它有这些内置的函数。
发布于 2012-10-11 09:21:18
在后台进行轮询对于获得这样的更改并不少见。你能更具体地说明你不喜欢什么吗?
如果你正在寻找更聪明的东西,每个玩家可以异步地打开一个“游戏会话”API的keep-alive请求。该实现可以监视文件的更改,并在检测到更改时发送下一个块。更改是来自文件还是数据库取决于服务器实现。当然,您的客户端应用程序需要确保请求保持打开状态并在关闭时重新连接。
https://stackoverflow.com/questions/12830784
复制相似问题