請教大家一個問題。
利用Thinkphp搭建了一個網(wǎng)站,但是在網(wǎng)站的首頁需要有調(diào)用一個第三方網(wǎng)站的API。需要每個幾秒向第三方網(wǎng)站的API發(fā)送請求,返回一組json實時數(shù)據(jù)。
請問能否用workerman作為中間部分,在服務器自動定時去調(diào)用這個API。然后當用戶訪問網(wǎng)站首頁的時候,再通過ajax調(diào)用wokerman的url,來實現(xiàn)這些返回的數(shù)據(jù)在網(wǎng)站頁面自動實時刷新?
如果可行,能麻煩告訴我下實現(xiàn)的流程和步驟嗎?謝謝大家了~
完全可以啊。利用workemran的定時器功能去curl訪問api,返回的結果保存到一個全局變量里面,網(wǎng)站訪問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();
你的網(wǎng)站通過file_get_contents(' http://workerman_ip:6666 ')就可以了.
@latin:還要麻煩你一下,如果要是想要實現(xiàn),前端的數(shù)據(jù)自動刷新呢?類似于股票行情那種形式。我想了想,是不是要用到http://wtbis.cn/web-sender 。在Timer::add中,每次獲取完數(shù)據(jù)之后,向前端推送?