Push notificatie

Crowl.sse.js

Met de class CrowlServerListener kan je luisteren naar pushnotificaties van de server. 

const ccl = new CrowlServerListener('path/to/your/sse-endpoint');
ccl.connect();
ccl.onMessage((data) => {
    var d = data;
    console.log('Received data in callback:', d);
});

//of wanneer JSON-data aanwezig zijn...
ccl.onMessage((data) => {
    try {
      const jsonData = JSON.parse(data);
      console.log(jsonData);
    } catch (e) {
      console.error('Fout bij parsen JSON-gegevens: ', e);
    }
});

Voorbeeld PHP-SSE-endpoint

<?
//instellen headers
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
header('Connection: keep-alive');

function sendSSE($id, $event, $data) {
    echo "id: $id ";
    echo "event: $event ";
    echo "data: $data  ";
    ob_flush();
    flush();
}

$id = 1;

while (true) {
 //hier komt de code voor het verzenden
 $data = json_encode(
    ['type' => 'notification', 
    'message' => 'Crowl test notificatie', 
    'timestamp' => date('r')]
 );
 sendSSE($id++, 'message', $data);
 //wacht 1 seconde voor de volgende verzending
 sleep ( 1 )
}
?>

In de while-lus kan je vervolgens de data samenstellen en via de sendSSE verzenden naar de webapplicatie.

Volgende pagina