Вчера я погрузился в события Server-Sent, так как они были отличным способом создания новостей для онлайн-игры, которую я создаю. У меня был рабочий сценарий, который мог подписаться на мой канал, и скрипт, который мог бы вытащить ленту новостей из базы данных MySql в течение нескольких минут, но по какой-то причине он отключает соединение каждый раз ... (и перестраивает каждые 3 секунды, не делая ничего лучше, чем просто с помощью AJAX с определенными интервалами времени, например)Мое соединение с использованием Server-Sent Events (и Javascript/PHP) продолжает немедленно снижаться
Javascript я использую:
var source = new EventSource('http://theobg.itselementary.site50.net/gamefeed.php');
source.onmessage = function(e) {
$("#gamefeed").html(e.data);
}
РНР Я использую:
<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
header('Connection: keep-alive');
function sendMsg($id, $msg) {
echo "id: $id" . PHP_EOL;
echo "data: $msg" . PHP_EOL;
echo PHP_EOL;
ob_flush();
flush();
}
//The file for connecting to my database here...
$gameid = 1;
$serverTime = time();
//Some mysql query to get the gamefeed from the database here..., gamefeed is structured like this: NEWS&OTHERNEWS&OLDERNEWS&EVENOLDERNEWS
sendMsg($serverTime, $gamefeed);
?>
Я смотрел на всем протяжении в Интернете, но все, кажется, отлично работает со мной, кроме f или связь не «жива», и я понятия не имею, почему это ... может кто-нибудь мне помочь?
Спасибо заранее, Dalionzo
Спасибо, что ответили, но все, что делает, отправляет бесконечные обновления на мою главную страницу, вызывая ее сбой; я совершенно не понимаю здесь? Или мне еще нужно выяснить и добавить свой собственный код для проверки того, изменились ли данные? – Dalionzo
Вам нужно добавить вызов для сна, чтобы ослабить его. – Licson
У меня есть новая логика, проверьте ее. – Licson