Najnowsze tutoriale tworzenie stron internetowych

HTML5 Server-Sent Events


Server-Sent wydarzenia pozwalają stronę internetową, aby uzyskać aktualizacje z serwera.


Server-Sent Events - One Way Wiadomości

Zdarzenie serwera wysyłany jest wtedy, gdy strona internetowa automatycznie pobiera aktualizacje z serwera.

To również było możliwe wcześniej, ale strona internetowa będzie musiał zapytać, czy jakiekolwiek aktualizacje były dostępne. Z wydarzeń serwerowych wysłany, aktualizacje są automatycznie.

Przykłady: Facebook/Twitter aktualizacje, aktualizacje cen akcji, Kanały, wyniki sportowe itp


Wsparcie przeglądarka

Liczby w tabeli określ pierwszą wersję przeglądarki, która w pełni obsługuje zdarzenia serwerowych wysłana.

API
SSE 6.0 Nieobsługiwany 6.0 5.0 11,5

Otrzymuj powiadomienia o zdarzeniach serwera Wysłane

EventSource przedmiot służy do odbierania powiadomień o zdarzeniach wysyłane przez serwer:

Przykład

var source = new EventSource("demo_sse.php");
source.onmessage = function(event) {
    document.getElementById("result").innerHTML += event.data + "<br>";
};
Spróbuj sam "

Przykład wyjaśnia:

  • Utwórz nowy EventSource obiekt i określić adres URL strony wysyłającej aktualizacje (in this example "demo_sse.php")
  • Za każdym razem odebraniu aktualizacji, onmessage wystąpienia zdarzenia
  • Gdy onmessage wystąpienia zdarzenia, umieścić odebranych danych do elementu o id="result"

Sprawdzić wydarzeń Wsparcie Server-Sent

W tryit powyższym przykładzie było kilka dodatkowych linii kodu, by sprawdzić przeglądarki wsparcie dla wydarzeń serwerowych wysłania:

if(typeof(EventSource) !== "undefined") {
    // Yes! Server-sent events support!
    // Some code.....
} else {
    // Sorry! No server-sent events support..
}

Server-Side Przykład kodu

Dla powyższego przykładu do pracy, potrzebujesz serwera zdolnego do wysyłania aktualizacji danych (takich jak PHP lub ASP).

Składnia strumień zdarzeń po stronie serwera jest prosta. Ustaw "Content-Type" nagłówek "text/event-stream" . Teraz można zacząć wysyłać strumień zdarzeń.

Kod w PHP (demo_sse.php) :

<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');

$time = date('r');
echo "data: The server time is: {$time}\n\n";
flush();
?>

Kod w ASP (VB) (demo_sse.asp) :

<%
Response.ContentType = "text/event-stream"
Response.Expires = -1
Response.Write("data: The server time is: " & now())
Response.Flush()
%>

Kod wyjaśnił:

  • Ustaw "Content-Type" nagłówek "text/event-stream"
  • Określić, że strona nie powinna buforować
  • Wyjście danych do wysłania ( Always start with "data: ")
  • Przepłukać dane wyjściowe z powrotem do strony internetowej

Przedmiot EventSource

W przykładach powyżej użyliśmy onmessage zdarzenie, aby uzyskać wiadomości. Ale inne wydarzenia dostępne są również:

Wydarzenia Opis
onopen Po nawiązaniu połączenia z serwerem jest otwierany
onmessage Po odebraniu wiadomości
onerror W przypadku wystąpienia błędu