Открываю я значит соединение с сервером PHP: <? header("Content-Type: text/event-stream"); echo "data: test\n\n"; В консоли браузера выводится ответ сервера - "test". Когда я меняю PHP: echo "data: test\n\n"; на PHP: echo "data: test_2\n\n"; То сервер не сразу реагирует на новый data, и присылает мне сообщение "test", вместо "test_2". Сервер реагирует на то, что код изменился через соединений 10-20. Что не так? И еще, как сделать бесконечное время выполнения скрипта?
через cli, но PHP не рассчитан на это, могут быть глюки. что такое SSE и что ты вообще делаешь? какой сервер?
Именно, вот содержимое файла PHP: <? header("Content-Type: text/event-stream"); echo "data: test\n\n"; А вот js код на стороне клиента Код (Javascript): var eventSource = new EventSource('https://my_domain/path/test.php'); eventSource.onopen = function(e) { console.log("Соединение открыто"); }; eventSource.onerror = function(e) { if (this.readyState == EventSource.CONNECTING) { console.log("Соединение порвалось, пересоединяемся..."); } else { console.log("Ошибка, состояние: " + this.readyState); } }; eventSource.onmessage = function(e) { console.log("Пришли данные: " + e.data); };
Вряд ли. Кэш браузера я очищал, ничего не изменялось. Также я пробовал, перед очистки кэша браузера, сделать так PHP: <? header("Content-Type: text/event-stream"); $rand = rand(0, 500); echo "data: $rand\n\n"; После очистки кэша, все также выводилось рандомное число. Возможно ли так, что PHP код кэшируется?
так надо заголовки смотреть, можно и запросы через fiddler посмотреть не, думаю вебсервер кэширует или заголовки связанные с куешом отдаёт
Не пробовал сделать: PHP: <? header("Content-Type: text/event-stream"); echo "data: test\n\n"; sleep(1); echo "data: test_2\n\n"; ?
Эту проблему я решил, теперь возникает другая проблема. Когда я вставил это JS код на основную страницу сайта Проблему решил, но возникла другая. Когда я вставил указанный мною JS код в основную страницу, и в этот PHP файл вставил бесконечный цикл, который проверяет наличие обновлений в БД, страница стала бесконечно загружаться. Как только я делаю цикл не бесконечным, страница нормально загружается. Как решить данную проблему?
запускай свой сервер на PHP через cli, он может вечно работать, вот товарищь который так делал получил проблемы https://php.ru/forum/threads/padenie-skripta.60546/ но вроде решил их