Я пытаюсь разобраться с серверными событиями, поскольку они идеально соответствуют моим требованиям и кажутся простыми в реализации, однако я могу Не обойтись без неопределенной ошибки и того, что похоже на то, что соединение постоянно закрывается и повторно открывается. Все, что я пробовал, основано на этом и других руководствах.
PHP - это единственный скрипт:
, а JavaScript выглядит так (запускается при загрузке тела):
function init() {
var source;
if (!!window.EventSource) {
source = new EventSource('events.php');
source.addEventListener('message', function(e) {
document.getElementById('output').innerHTML += e.data + '
';
}, false);
source.addEventListener('open', function(e) {
document.getElementById('output').innerHTML += 'connection opened
';
}, false);
source.addEventListener('error', function(e) {
document.getElementById('output').innerHTML += 'error
';
}, false);
}
else {
alert("Browser doesn't support Server-Sent Events");
}
}
Я немного поискал, но не могу найти информацию о
Если я запускаю этот JS в Chrome (16.0.912.77), он открывает соединение, получает время, затем ошибки (без полезной информации в объекте ошибки), затем повторно подключается через 3 секунды и выполняет тот же процесс. В Firefox (10.0) я получаю такое же поведение.
РЕДАКТИРОВАТЬ 1 : Я думал, что проблема может быть связана с сервером, который я использовал, поэтому я протестировал обычную установку XAMPP, и возникла та же ошибка.Должна ли базовая конфигурация сервера справиться с этим без модификации / дополнительной настройки?
РЕДАКТИРОВАТЬ 2 : Ниже приведен пример вывода из браузера:
connection opened
server time: 01:47:20
error
connection opened
server time: 01:47:23
error
connection opened
server time: 01:47:26
error
Кто-нибудь может сказать мне, где это происходит не так? Учебники, которые я видел, показывают, что SSE очень проста. Также были бы очень полезны любые ответы на два моих пронумерованных вопроса выше.
Спасибо.