HTML5 Прототип событий, отправляемых сервером - неоднозначная ошибка и повторяющийся опрос?

Я пытаюсь разобраться с серверными событиями, поскольку они идеально соответствуют моим требованиям и кажутся простыми в реализации, однако я могу Не обойтись без неопределенной ошибки и того, что похоже на то, что соединение постоянно закрывается и повторно открывается. Все, что я пробовал, основано на этом и других руководствах.

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"); } }

Я немного поискал, но не могу найти информацию о

  1. Если Apache нужен какой-то специальный конфигурация для поддержки событий, отправляемых сервером, и
  2. Как я могу инициировать отправку с сервера с помощью такого рода настройки (например, могу ли я просто выполнить PHP-скрипт из интерфейса командной строки, чтобы дать толчок уже подключенному браузеру?)

Если я запускаю этот 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 очень проста. Также были бы очень полезны любые ответы на два моих пронумерованных вопроса выше.

Спасибо.

13
задан tomfumb 9 February 2012 в 21:48
поделиться