PHP предоставляет встроенную поддержку для Server-Sent Events (SSE), которая позволяет создавать веб-страницы, которые могут получать обновления от сервера в режиме реального времени. Для настройки SSE в PHP вам понадобится следовать нескольким шагам.
Шаг 1: Создайте скрипт PHP, который будет генерировать события SSE. Начните скрипт, отправив соответствующие заголовки, чтобы сообщить браузеру, что это поток SSE. Затем установите тайм-аут соединения на неограниченное время, чтобы поддерживать длительное соединение с браузером. Далее, используйте функцию echo
для вывода данных события в формате SSE. Не забудьте вызвать функцию flush()
, чтобы убедиться, что данные отправляются немедленно, а не кэшируются на сервере.
<?php header('Content-Type: text/event-stream'); header('Cache-Control: no-cache'); header('Connection: keep-alive'); header('X-Accel-Buffering: no'); ini_set('max_execution_time', 0); $counter = 0; while (true) { $counter++; echo "event: myEventn"; echo "data: This is event number " . $counter . "nn"; if (connection_aborted()) { break; } flush(); sleep(1); } ?>
Шаг 2: Создайте HTML-страницу, которая будет прослушивать события SSE и отображать их на странице. Для этого вам нужно создать объект EventSource, указав URL-адрес вашего скрипта PHP, который генерирует события SSE. Затем вам нужно добавить слушатель событий, который будет реагировать на получение нового события и обновлять содержимое HTML-элемента на странице.
<!DOCTYPE html> <html> <head> <script> var events = new EventSource("your_script.php"); events.addEventListener("myEvent", function(event) { var data = event.data; // Обновить содержимое HTML-элемента на странице }); </script> </head> <body> <!-- HTML-элемент для отображения данных события --> </body> </html>
Когда вы запускаете вашу HTML-страницу в браузере, она будет подключаться к вашему скрипту PHP, который будет генерировать события SSE. При получении нового события на странице будет вызываться слушатель событий, который обновит содержимое HTML-элемента на странице.
Основываясь на этих шагах, вы можете настроить Server-Sent Events (SSE) в PHP для веб-страниц, которые получают обновления от сервера в режиме реального времени.