Использовать поток «x-dom-event-stream» в javascript? - PullRequest
8 голосов
/ 01 апреля 2010

Черновик HTML5 содержит API с именем EventSource для потоковой передачи данных (уведомлений) через JavaScript с использованием только одного вызова сервера.

Обнаружив это, я нашел пример в Opera Labs части javascript:

document.getElementsByTagName("event-source")[0]
        .addEventListener("server-time", eventHandler, false);

function eventHandler(event)
{
    // Alert time sent by the server
    alert(event.data); 
}

и серверная часть:

<?php
header("Content-Type: application/x-dom-event-stream");
while(true) {
    echo "Event: server-time\n";
    $time = time();
    echo "data: $time\n";
    echo "\n";
    flush();
    sleep(3);
}
?>

Но на сегодняшний день, похоже, только Opera реализовала API, ни у Chrome, ни у Safari нет рабочей версии (я здесь не прав?)

Итак, мой вопрос, есть ли другой способ в javascript, может быть, более сложный, для использования этого одного потока для получения данных?

РЕДАКТИРОВАТЬ: я сейчас смотрю на кометы, но я не уверен, как использовать это снова :) РЕДАКТИРОВАТЬ 2: Очевидно, "x-dom-event-stream" теперь переименован в "text / event-stream" РЕДАКТИРОВАТЬ 3: Получил больше понять с этой недавняя статья от javanet

Ответы [ 3 ]

1 голос
/ 06 апреля 2010

См. Орбитальный , который предоставляет библиотеку JavaScript и сервер Библиотека javascript пытается использовать WebSockets и использует длинные опросы или другие методы.

Вот хорошее руководство: http://thingsilearned.com/2009/08/03/starting-out-with-comet-orbited-part-3-%E2%80%93-the-client/

0 голосов
/ 05 апреля 2010

Взгляните на Kaazing Open Gateway . Я считаю, что он работает аналогично API-интерфейсу ericsson в том, что он прозрачно переключается на использование нативной реализации, когда становится доступным. Я думаю, что это обеспечивает и источник событий и веб-сокеты.

0 голосов
/ 01 апреля 2010

Что ж, Google действительно мой друг, после долгих поисков я нашел этот скрипт в Ericson Labs (?!)

https://labs.ericsson.com/apis/eventsource/

Со своей страницы:

Активатор EventSource позволяет вам использовать предстоящий источник событий API в любой текущий веб-браузер. Просто включите библиотеку enabler в свой страница, и вы можете использовать API. Когда пользовательские агенты реализуют Событие Исходники API сами, ваши Приложение будет немедленно и прозрачно начать использовать родной осуществление.

Однако для этого решения требуется ключ API от Ericsson, и его нельзя использовать в коммерческих приложениях, что для меня не лучшее решение: (

Так что, если у вас есть лучший подход ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...