HTML5 Server-Sent Events (Server-Sent Events)
HTML5-Server senden Ereignisse (Server gesendet Ereignis) ermöglicht Web-Seiten-Updates vom Server zu erhalten.
Server-Sent Events - Wege-Messaging
Server-Sent Ereignis ist die Website automatisch Updates erhalten vom Server.
Zuvor es auch tun können, vorausgesetzt, dass die Seite zu stellen hatte, ob ein Update verfügbar ist. Der Server das Ereignis sendet, wird das Update automatisch ankommen.
Beispiele: Facebook / Twitter-Updates, Bewertungs-Updates, neue Blog, Turnierergebnisse und so weiter.
Browser-Unterstützung
Alle gängigen Browser werden unterstützt von der Server das Ereignis sendet, zusätzlich zu den Internet Explorer.
Empfangen von Server-Sent Ereignisbenachrichtigung
Eventsource-Objekt wird verwendet, um den Server gesendet Ereignisbenachrichtigungen erhalten:
Beispiele
source.onmessage=function(event)
{
document.getElementById("result").innerHTML+=event.data + "<br>";
};
Versuchen »
Analyse Beispiele:
- Eventsource ein neues Objekt erstellen, und dann das Update Vorschriften URL der Seite zu senden (in diesem Fall "demo_sse.php")
- Jeder erhält ein Update, onmessage Ereignis eintritt
- Wenn onmessage Ereignis eintritt, werden die empfangenen Daten in die ID "result" Element eingeschoben
Erkennung Server-Sent Events Support
Die folgenden Beispiele, schreiben wir einige zusätzliche Code, um den Browser an den Server zu erkennen Ereignisse unterstützt von zu senden:
{
// Browser unterstützt Server-Sent
Einige Code//.....
}
sonst
{
// Browser unterstützt keine Server-Sent ..
}
Beispiele für serverseitigen Code
Um das obige Beispiel zu machen, können Sie ausführen, müssen Sie auch in der Lage sein, Daten zu senden, um den Server (wie PHP und ASP) zu aktualisieren.
Syntax serverseitige Ereignisstrom ist sehr einfach. Die "Content-Type" Header auf "text / Event-Stream" gesetzt. Sie können nun das Ereignisablauf gesendet wird.
Beispiele
header ( 'Content-Type: text / Event-Stream');
header ( "Cache-Control: no -cache ');
$ Time = date ( 'r' );
echo "Daten: Die Serverzeit ist : {$ time} \ n \ n";
flush ();
?>
ASP-Code (VB) (demo_sse.asp):
Response.ContentType="text/event-stream"
Response.Expires=-1
Response.Write("data: " & now())
Response.Flush()
%>
Code Erläuterung:
- Der Header "Content-Type" auf "text / Event-stream"
- Bereitstellung nicht Cache-Seiten
- Ausgangsübertragungsdatum (immer "Daten:" am Anfang)
- Aktualisieren Sie die Seite zur Ausgabe von Daten
Eventsource-Objekte
In dem obigen Beispiel haben wir die Nachricht onmessage Ereignis zu erhalten. Sie können jedoch auch andere Veranstaltungen nutzen:
事件 | 描述 |
---|---|
onopen | 当通往服务器的连接被打开 |
onmessage | 当接收到消息 |
onerror | 当发生错误 |