Instant yet Simple PHP notification with HTML5 Server-Sent Events
sse.php
<?php
$dbconn = new PDO("pgsql:host=localhost;dbname=mydb", "pduser", "userpass");
$dbconn->exec('LISTEN "channel_name"'); header("X-Accel-Buffering: no"); header("Content-Type: text/event-stream");
header("Cache-Control: no-cache");
ob_end_flush(); $inc=0;
while (1) {
$result = "";
$result = $dbconn->pgsqlGetNotify(PDO::FETCH_ASSOC, 10000);
if ( $result ) {
echo "id: $inc\ndata: ".stripslashes(json_encode($result))."\n\n";
$inc++;
}
flush();
}
?>
Tested with HTML+JS sample file from Mozilla web site (ssedemo.php)