HTML Server-Sent events
- Vorige pagina HTML5 Web Workers
- Volgende pagina HTML Voorbeelden
Server-Sent events stellen de webpagina in staat om updates van de server te ontvangen.
Server-Sent events - Einzrichtige Messaging
Server-Sent events verwijzen naar het automatisch verkrijgen van updates door de webpagina van de server.
Dit kon eerder ook, op voorwaarde dat de webpagina moest vragen of er updates beschikbaar waren. Met Server-Sent events kunnen updates automatisch aankomen.
Bijvoorbeeld: Facebook/Twitter updates, aandeelkoers updates, nieuwe artikelen, wedstrijdresultaten, enz.
Browserondersteuning
De cijfers in de tabel wijzen op de eerste browsers die server-sent events volledig ondersteunen.
API | |||||
SSE | 6.0 | Niet ondersteund | 6.0 | 5.0 | 11.5 |
Ontvang server-side event meldingen
Het EventSource-object wordt gebruikt om server-side events te ontvangen:
Voorbeeld
var source = new EventSource("demo_sse.php"); source.onmessage = function(event) { document.getElementById("result").innerHTML += event.data + "<br>"; };
Voorbeeld uitleg:
- Maak een nieuwe EventSource-object aan en specificeer de URL van de pagina die de updates verzendt (in dit voorbeeld is dat "demo_sse.php")
- Elke keer dat er een update ontvangen wordt, treedt het onmessage-evenement op
- Wanneer het onmessage-evenement optreedt, wordt de ontvangen data ingevoegd in het element met id "result"
Detecteer Server-Sent Event ondersteuning
In de TIY voorbeeld hebben we extra code geschreven om de browserondersteuning voor server-side events te detecteren:
if(typeof(EventSource) !== "undefined") { // Ja! Server-side events worden ondersteund! // Enkele code..... } else { // Excuses, server-side events worden niet ondersteund! }
Server-side code voorbeeld
Om de voorbeeld te laten draaien, moet je in staat zijn om data-updates naar de server te sturen (bijvoorbeeld PHP of ASP).
服务器端事件流的语法非常简单。请把 "Content-Type" 报头设置为 "text/event-stream"。现在,您可以开始发送事件流了。
服务器端事件流的语法非常简单。请把 "Content-Type" 报头设置为 "text/event-stream"。现在,您可以开始发送事件流了。
Code in 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();
?>
Code in ASP (VB) (demo_sse.asp): <% Response.ContentType = "text/event-stream" Response.Expires = -1 Response.Write("data: The server time is: " & now()) Response.Flush()
%>
- Kode uitleg:
- Stel de header "Content-Type" in op "text/event-stream"
- Geef de te verzenden datum weer (altijd begint met "data: ")
- Geef gegevens weer op het verversen van de pagina
EventSource Object
In het voorbeeld hiernaast gebruiken we de onmessage-gebeurtenis om berichten te ontvangen. Er kunnen ook andere gebeurtenissen worden gebruikt:
Gebeurtenis | Beschrijving |
---|---|
onopen | Bij het openen van de verbinding met de server |
onmessage | Bij het ontvangen van een bericht |
onerror | Bij fout |
- Vorige pagina HTML5 Web Workers
- Volgende pagina HTML Voorbeelden