请教大家一个问题。
利用Thinkphp搭建了一个网站,但是在网站的首页需要有调用一个第三方网站的API。需要每个几秒向第三方网站的API发送请求,返回一组json实时数据。
请问能否用workerman作为中间部分,在服务器自动定时去调用这个API。然后当用户访问网站首页的时候,再通过ajax调用wokerman的url,来实现这些返回的数据在网站页面自动实时刷新?
如果可行,能麻烦告诉我下实现的流程和步骤吗?谢谢大家了~
完全可以啊。利用workemran的定时器功能去curl访问api,返回的结果保存到一个全局变量里面,网站访问workerman 的http接口,返回这个全局变量的结果。
代码类似
require_once __DIR__ . '/Workerman/Autoloader.php'; use Workerman\Worker; use Workerman\Lib\Timer; $curl_result = null; $worker = new Worker('http://0.0.0.0:6666'); $worker->onWorkerStart = function() { Timer::add(5, function(){ global $curl_result; curl_init..... $curl_result = curl_exec(..); }); }; $worker->onMessage = function($con, $msg){ global $curl_result; $con->close($curl_result); }; Worker::runAll();
你的网站通过file_get_contents(' http://workerman_ip:6666 ')就可以了.
感谢你的指导与思路。万分感谢!
@latin:还要麻烦你一下,如果要是想要实现,前端的数据自动刷新呢?类似于股票行情那种形式。我想了想,是不是要用到http://www.workerman.net/web-sender 。在Timer::add中,每次获取完数据之后,向前端推送?
用户量不大的话,web-msg-sender确实简单些
完全可以啊。利用workemran的定时器功能去curl访问api,返回的结果保存到一个全局变量里面,网站访问workerman 的http接口,返回这个全局变量的结果。
代码类似
你的网站通过file_get_contents(' http://workerman_ip:6666 ')就可以了.
感谢你的指导与思路。万分感谢!
@latin:还要麻烦你一下,如果要是想要实现,前端的数据自动刷新呢?类似于股票行情那种形式。我想了想,是不是要用到http://www.workerman.net/web-sender 。在Timer::add中,每次获取完数据之后,向前端推送?
用户量不大的话,web-msg-sender确实简单些