Итак, у меня есть файл PHP, который будет случайно получать новые опубликованные данные от сторонних разработчиков. Для простоты, давайте назовем его get_data.php
и сказать, что это выглядит примерно так:Передача данных из PHP-скрипта в PHP Event Stream
<?php
$data = $_REQUEST;
// Data processing
А то у меня есть отдельный скрипт, stream.php
, который использует HTML5 Server-Sent Events для потоковой передачи данных клиента (JS):
<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
while (true) {
echo 'data: ' . $data . PHP_EOL;
echo PHP_EOL;
ob_flush();
flush();
sleep(1);
}
Каждый сценарий сам по себе работает нормально. Однако мне нужно передать $data
от первого сценария ко второму.
Я знаю, что могу добиться этого, сохранив переменную в DB или временном файле, но в идеале я смог бы сделать это с помощью только PHP.
В том числе один файл внутри другого не похож на хороший вариант либо потому, что заголовки потока, скорее всего, испортят сообщения сторонних поставщиков данных, и я хотел бы сохранить обработку данных отдельно от поток в случае сбоя последнего.
ПРИМЕЧАНИЕ - Это не дубликат других вопросов о том, как передавать данные между PHP скрипты на веб-странице, учитывая, что я, казалось бы, не может использовать $_SESSION
переменные данные, размещенные третьей стороной, отличной от пользователя доступ к потоку событий.
Вы должны хранить его где-нибудь. Для чего-то подобного вам нужна система обмена сообщениями. Посмотрите на Redis pubsub, RabbitMQ или ZeroMQ в качестве отправной точки. – bcmcfc