Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.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
pbbg的php实时更新。(Php、JavaScript和html)_Php_Html - Fatal编程技术网

pbbg的php实时更新。(Php、JavaScript和html)

pbbg的php实时更新。(Php、JavaScript和html),php,html,Php,Html,我正在尝试创建一个PBBG(基于浏览器的持久性游戏),就像OGame、Space4k和其他游戏一样 我的问题是始终更新资源集合和构建时间,例如在构建、装运、研究等完成构建并更新用户配置文件时设置的时间,即使用户处于脱机状态。我应该在哪里学习做这个?它应该是在后台持续运行的脚本吗 请注意,我只希望使用PHP、HTML、CSS、JavaScript和Mysql,但如果需要,我会学到一些新东西 Cron jobs或Windows等效软件似乎是一种方式,但对我来说似乎并不正确或最好。c您是否必须查询数据

我正在尝试创建一个PBBG(基于浏览器的持久性游戏),就像OGame、Space4k和其他游戏一样

我的问题是始终更新资源集合和构建时间,例如在构建、装运、研究等完成构建并更新用户配置文件时设置的时间,即使用户处于脱机状态。我应该在哪里学习做这个?它应该是在后台持续运行的脚本吗

请注意,我只希望使用PHP、HTML、CSS、JavaScript和Mysql,但如果需要,我会学到一些新东西


Cron jobs或Windows等效软件似乎是一种方式,但对我来说似乎并不正确或最好。c

您是否必须查询数据库中的许多用户属性,如“向我显示所有已经拥有galaxy级飞船的用户”

如果您不需要它,您可以在有人请求概要文件时检查构建队列

如果这不是一个选项,您可以向数据库中添加一个“finished_at”列,并在查询中包含“WHERE finished_at>=SYSDATE()。在这种情况下,所有资源(未来和当前)都在同一个表中

请始终牢记:如果没有人请求,拥有“实时”数据有什么用

我的问题是总是更新 资源收集和与 建筑时间,如时间已设定 当建筑、船舶、研究和 etc完成构建并更新 即使用户是 离线

我认为最好的方法是安装消息队列(但您需要安装/编译它),就像进行脱机处理一样。假设建造一艘船需要30秒。对于(我喜欢pheanstalk),您首先使用以下命令将消息放入队列:

$pheanstalk->put($data,$pri,$delay,$ttr)

你们可以看到所有论点的意义

但是,
$delay=30
。当工作进程执行
reserve()
时,它可以在30秒后处理消息

$job = $pheanstalk->reserve();
实时向用户传输数据 此外,您还可以通过BOSH查看XMPP,将新数据实时传输给所有用户


事实上,这是有道理的,我认为它必须保持活跃。多谢!包含SYSDATE()的查询未命中查询缓存=>Yes,因为缓存伪“活动”数据对我来说似乎没什么用处。但是现在您已经提到了……如果同一查询每秒执行多次,那么使用PHP date()可能会加快速度