Проблемы с EventSource
Пытаюсь на практике понять как работает приблуда EventSource. Вот простенький код на js:
let eventSource = new EventSource('/dist/EventSource.php');
eventSource.onmessage = e => {
console.log(e.data); // хочу видеть сообщение в консоли
}
А вот что имеем в EventSource.php (запускаю на локальном сервере MAMP):
<?php
header('Content-Type: text/event-stream');
echo 'data: message' . "\n\n";
?>
Но почему то сообщения message в консоль поступают один за другим бесконечно, хотя команду echo в php я написал один только раз.
Как сделать чтобы из php кода сообщение отправлялось только один раз? без разрыва соединения
Ответы (1 шт):
Автор решения: Condor
→ Ссылка
EventSource как и WebSocket, держит соединение постоянно. Используйте метод close, который завершит соединение:
let eventSource = new EventSource('/dist/EventSource.php');
eventSource.onmessage = e => {
console.log(e.data); // хочу видеть сообщение в консоли
}
eventSource.close();