Я пытаюсь использовать потоковый API Tradier для прямой трансляции цитат
Я пытался с помощью:
$chm = curl_init("https://api.tradier.com/v1/markets/events/session");
curl_setopt($chm, CURLOPT_POST, 1);
curl_setopt($chm, CURLOPT_HTTPHEADER, array(
"Accept: application/json",
"Authorization: Bearer {MY SPECIAL TOKEN}",
));
curl_setopt($chm, CURLOPT_POSTFIELDS,array(
"Accept: application/json",
"Authorization: Bearer {MY SPECIAL TOKEN}"));
curl_setopt($chm, CURLOPT_RETURNTRANSFER, TRUE);
$r = curl_exec($chm);
$ssid = json_decode($r)->stream->sessionid;
#up to here works
$opts = array(
'http'=>array(
'method'=>"POST",
'header'=> "Authorization: Bearer {MY SPECIAL TOKEN}")
);
$default = stream_context_get_default($opts);
print_r(readfile('https://stream.tradier.com/v1/markets/events?symbols=SPY&sessionid='.$ssid));
fclose($default);
Я хочу, чтобы php возвращал данные асинхронно, все еще слушая в потоке
Прямо сейчас он продолжает работать вечно, пока не достигнет ограничения по времени.
Я нашел способ обойти потоковую передачу php:
Я делаю потоковую передачу с помощью Python со встроенной оберткой и загружаю ее в базу данных
Затем я использую Ajax с PHP, чтобы обновить экран на основе содержимого БД
Других решений пока нет …