Latest web development tutorials

HTML5 zdarzenia wysyłane przez serwer (Server-Sent Wydarzenia)

Serwer HTML5 wysyłać zdarzenia (event serwera wysłane) pozwala stron internetowych, aby uzyskać aktualizacje z serwera.


Server-Sent Wydarzenia - wiadomości sposobem

Impreza serwera Wysyłany jest strona automatycznie uzyskać aktualizacje z serwera.

Wcześniej może też to zrobić, pod warunkiem, że strona miała zapytać, czy jest dostępna aktualizacja. Serwer wysyła zdarzenie, aktualizacja dotrze automatycznie.

Przykłady: aktualizacje Facebook / Twitter, aktualizacji wyceny, nowy blog, wyniki turnieju i tak dalej.


Pomoc Browser

Internet ExplorerFirefoxOperaGoogle ChromeSafari

Wszystkie główne przeglądarki są obsługiwane przez serwer wysyła zdarzenie, w uzupełnieniu do programu Internet Explorer.


Otrzymania zawiadomienia Event Server-Sent

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

Przykłady

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

Spróbuj »

Przykłady analizy:

  • EventSource utworzyć nowy obiekt, a następnie wysłać regulacje aktualizacji URL strony (w tym przypadku "demo_sse.php")
  • Każdy otrzyma aktualizację, występuje onmessage wydarzenie
  • Gdy wystąpi zdarzenie onmessage, odebrane dane są wciśnięte w id "result" elementu

Wykrywanie zdarzenia wysyłane przez serwer Pomoc

Poniższe przykłady to napisać dodatkowy kod wykryć przeglądarki do serwera do przesyłania zdarzeń wspierają:

if (typeof (EventSource)! == "niezdefiniowany")
{
// Przeglądarka obsługuje Server-Sent
//Jakiś kod .....
}
więcej
{
// Przeglądarka nie obsługuje serwera Wysłane ..
}


Przykłady kodu po stronie serwera

Aby powyższy przykład, można uruchomić, trzeba także mieć możliwość wysyłania danych do aktualizacji serwera (takie jak PHP i ASP).

Składnia strumieni zdarzeń po stronie serwera jest bardzo proste. "Content-Type" nagłówek jest ustawiony na "text / Event-Stream". Teraz można zacząć wysyłać strumień zdarzeń.

Przykłady

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

$ Czas = date ( 'r' );
echo "danych: Czas serwera : {$ time} \ n \ n";
flush ();
?>

kod ASP (VB) (demo_sse.asp):

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

Kod wyjaśnienie:

  • Nagłówek "Content-Type" jest ustawiony na "text / Event-Stream"
  • Przepis ten nie stron cache
  • Data transmisji wyjściowa (zawsze "dane" na początku)
  • Odśwież stronę, aby dane wyjściowe

obiekty EventSource

W powyższym przykładzie użyliśmy aby uzyskać zdarzenie wiadomość onmessage. Jednakże można również stosować inne wydarzenia:

事件 描述
onopen 当通往服务器的连接被打开
onmessage 当接收到消息
onerror 当发生错误