Google weiß alles: in einem Netzwerk vom Server aus Clients steuern

Beitrag lesen

Thema interessiert mich, aber wieso sollte der Code im verlinkten Dokument ein stream sein? Ich sehe nur eine einmalige Ausgabe:

Dann warte mal 10 Sekunden oder passe das PHP-Skript an:

<!DOCTYPE html>
<html>
<!-- FILE: /var/www/Tests/Server-Sent-Events.html -->
<body>

<h1>Getting server updates</h1>
<div id="result"></div>

<script>
if(typeof(EventSource) !== "undefined") {
    var source = new EventSource("Server-Sent-Events.php");
    source.onmessage = function(event) {
        document.getElementById("result").innerHTML = event.data;
    };
} else {
    document.getElementById("result").innerHTML = "Sorry, your browser does not support server-sent events...";
}
</script>

</body>
</html>

"Sender":

<?php
## FILE: /var/www/Tests/Server-Sent-Events.php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
$time = date('r');
echo "retry: 1000\n";
echo "data: The server time is: {$time}\n\n";
flush();
?>

Wobei das nichts ist, was man nicht auch mit einem gewöhnlichem XHR-Request hinbekommt, bei welchem man die Daten (data: ...) und die Metainformationen (retry: ..., id: ....) brav in JSON verpackt.