SSE Код:
Код: Выделить всё
Я заметил, что есть функция Connection_status(). Поэтому вместо этого я изменил код, чтобы использовать переключатель для отображения статуса.
Код SSE:
Код: Выделить всё
Код: Выделить всё
ls -l /tmp/test ; cat /tmp/test
-rw-r--r-- 1 17 Jan 18 11:09 /tmp/test
CONNECTION_NORMAL
Что касается клиентского кода, который запускается в браузере, он такой же, как в школах W3 пример.
Код: Выделить всё
Getting server updates
if(typeof(EventSource) !== "undefined") {
var source = new EventSource("demo_sse.php");
source.onmessage = function(event) {
document.getElementById("result").innerHTML += event.data + "
";
};
} else {
document.getElementById("result").innerHTML = "Sorry, your browser does not support server-sent events...";
}
Некоторые дополнительные сведения после просмотра этого ответа @JS_Riddler. Насколько я понимаю, PHP не может прервать соединение даже с помощью методаlush(), если вывод буферизуется. Я добавил цикл while с ob_get_contents() и ob_end_clean(), но безуспешно. Также я скопировал точный пример с классом DestructTester, и результат был одинаковым независимо от того, было ли ignore_user_abort() установлено в true или нет. Каждый отпечаток был НЕТ.
Код SSE:
Код: Выделить всё
Подробнее здесь: https://stackoverflow.com/questions/778 ... on-aborted
Мобильная версия