HTML5-сервера Sent Events (Server-Sent Events)
Сервер HTML5 отправить события (сервер посланный событий) позволяет веб-страницы, чтобы получить обновления с сервера.
Сервер-Sent Events - способ обмена сообщениями
Сервер-Направлено событие является веб-сайт автоматически получать обновления с сервера.
Ранее также может сделать это, при условии, что страница была спросить, если обновление доступно. Сервер отправляет событие, обновление будет автоматически прибудет.
Примеры: обновления Facebook / Twitter, обновления оценки, новый блог, результаты турнира и так далее.
Поддержка браузеров
Все основные браузеры поддерживают сервер отправляет событие, в дополнение к Internet Explorer.
Получение уведомлений о событиях сервера-Sent
Объект EventSource используется для получения уведомлений о событиях, отправленных сервером:
примеров
source.onmessage=function(event)
{
document.getElementById("result").innerHTML+=event.data + "<br>";
};
Попробуйте »
Примеры анализа:
- EventSource создать новый объект, а затем отправить обновлять правила URL страницы (в данном случае, "demo_sse.php")
- Каждый получает обновление, происходит событие OnMessage
- Когда происходит событие OnMessage, полученные данные проталкивается в идентификатор элемента "результат" в
Обнаружение сервера-Sent Events Поддержка
Ниже приведены примеры, мы пишем дополнительный код для обнаружения браузера к серверу для отправки событий, поддерживаемых:
{
// Браузер поддерживает сервер-Sent
//Некоторый код .....
}
еще
{
// Браузер не поддерживает сервера Направлено ..
}
Примеры кода на стороне сервера
Для того, чтобы в приведенном выше примере, вы можете запустить, вы также должны иметь возможность отправлять данные для обновления сервера (например, PHP и ASP).
Синтаксис потока событий на стороне сервера очень проста. Заголовок "Content-Type" установлен в положение "текст / событие-поток". Теперь вы можете начать посылать поток событий.
примеров
заголовок ( "Content-Type: Текст / событие потока ');
заголовок ( "Cache-Control: нет -cache ');
$ Время = дата ( 'г' );
эхо "данных: Время сервера : {$ время} \ п \ п";
Flush ();
?>
ASP-код (VB) (demo_sse.asp):
Response.ContentType="text/event-stream"
Response.Expires=-1
Response.Write("data: " & now())
Response.Flush()
%>
Код товара:
- Заголовок "Content-Type" установлен в положение "текст / событие-поток"
- Предоставление не кэширует страницы
- дата передачи вывода (всегда "данные:" в начале)
- Обновите страницу для вывода данных
объекты EventSource
В приведенном выше примере, мы использовали, чтобы получить сообщение о событии OnMessage. Тем не менее, вы можете также использовать другие события:
事件 | 描述 |
---|---|
onopen | 当通往服务器的连接被打开 |
onmessage | 当接收到消息 |
onerror | 当发生错误 |