@WayMax

Как в нужный момент времени передать данные через Server-Sent Events?

sse.php
<?php
header("Content-Type: text/event-stream");
echo "data: Hello, world!\n\n";
?>


index.html
<html>
<head>
</head>
<body>
<script>
var eventSource = new EventSource('sse.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);
};
</script>
</body>
</html>


Этот пример сразу передает "Hello, world!". Если поместить код echo "data: Hello, world!\n\n"; в цикл, то будет передавать постоянно. А как сделать чтобы передача данных производилась в нужный мне момент времени?

Кроме варианта с "костылем" в "sse.php" в виде чтения из базы данных в цикле и пересылке "Hello, world!" при срабатывании условия.
  • Вопрос задан
  • 96 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы