Vom HTML 5-Server gesendete Ereignisse

黄舟
Freigeben: 2016-12-27 14:43:10
Original
1398 Leute haben es durchsucht

Server-Sent-Ereignis – unidirektionale Nachrichtenübermittlung

Das Server-Sent-Ereignis bezieht sich darauf, dass die Webseite automatisch Aktualisierungen vom Server erhält.

Dies war früher auch möglich, wenn die Webseite nachfragen musste, ob ein Update verfügbar war. Durch das Senden von Ereignissen über den Server können Updates automatisch eintreffen.

Beispiele: Facebook-/Twitter-Updates, Bewertungsaktualisierungen, neue Blogbeiträge, Veranstaltungsergebnisse usw.

Browser-Unterstützung

Vom Server gesendete Ereignisse werden von allen gängigen Browsern außer Internet Explorer unterstützt.

Vom Server gesendete Ereignisbenachrichtigung empfangen

Das EventSource-Objekt wird zum Empfangen der vom Server gesendeten Ereignisbenachrichtigung verwendet:

Instanz

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

Erläuterung des Beispiels :

Erstellen Sie ein neues EventSource-Objekt und geben Sie dann die URL der Seite an, an die das Update gesendet werden soll (in diesem Fall „demo_sse.php“).

Jedes Mal, wenn ein Update empfangen wird, wird die Das onmessage-Ereignis tritt ein

Wenn das onmessage-Ereignis auftritt, übertragen Sie die empfangenen Daten in das Element mit der ID „result“

Unterstützung für vom Server gesendete Ereignisse erkennen

Im Obigen TIY-Beispiel schreiben wir einen zusätzlichen Code, um die Browserunterstützung für vom Server gesendete Ereignisse zu erkennen:

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

Serverseitiges Codebeispiel

Damit das obige Beispiel funktioniert, müssen Sie Sie müssen außerdem in der Lage sein, Datenaktualisierungen an Server (z. B. PHP und ASP) zu senden.

Die Syntax des serverseitigen Event-Streamings ist sehr einfach. Setzen Sie den Header „Content-Type“ auf „text/event-stream“. Jetzt können Sie mit dem Senden des Event-Streams beginnen.

PHP-Code (demo_sse.php):

<?php header(&#39;Content-Type: text/event-stream&#39;); header(&#39;Cache-Control: no-cache&#39;); $time = date(&#39;r&#39;); echo "data: The server time is: {$time}\n\n"; flush(); ?>
Nach dem Login kopieren

ASP-Code (VB) (demo_sse.asp):

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

Code-Erklärung:

Setzen Sie den Header „Content-Type“ auf „text/event-stream“

Geben Sie an, dass die Seite nicht zwischengespeichert wird

Geben Sie das Sendedatum aus (beginnend immer mit „data:“)

Ausgabedaten auf der Webseite aktualisieren

EventSource-Objekt

Im obigen Beispiel verwenden wir das Ereignis onmessage, um die Nachricht abzurufen. Es können jedoch auch andere Ereignisse verwendet werden:

Event

Description

onopen Wenn die Verbindung zum Server geöffnet wird

onmessage Wenn eine Nachricht empfangen wird

onerror Wenn ein Fehler auftritt

Das Obige ist der Inhalt des vom HTML 5-Server gesendeten Ereignisses. Weitere verwandte Inhalte finden Sie hier Achten Sie auf die chinesische PHP-Website (www.php.cn)!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage