L'API EventSource introduite dans les spécificités accompagnant le HTML5 sert à récupérer et traiter des événements/messages renvoyés par un serveur sur une connexion HTTP continue.Les données sont retournées au format "text/event-stream".
Une source d’événement peut être déclarée de la façon suivante :
| Code Javascript : | Sélectionner tout |
var sourceEvents = new EventSource("http://urlsite/events.php");
- Remontée de message uniquement ;
- Remontée d’événement avec ou sans données.
Dans tous les cas, les "messages" doivent être séparés par deux mises à la ligne servant à distinguer les blocs, dans le cas contraire cela signifie que la mise à la ligne fait partie des données.
Exemple de données message uniquement :
data: This is the first message. data: This is the second message, it data: has two lines. data: This is the third message.
| Code Javascript : | Sélectionner tout |
1 2 3 4 | sourceEvents.onmessage = function (event) { console.log(event.data); //traitement à effectuer }; |
event: add data: 73857293 event: remove data: 2153 event: add data: 113411
| Code Javascript : | Sélectionner tout |
1 2 3 4 | sourceEvents.addEventListener("change", function (event) { console.log(event.data); //traitement à effectuer }, false); |
| Code Javascript : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 | sourceEvents.onerror = function (e) { console.log(e); if (sourceEvents.readyState == 2) { // traitement en cas de déconnexion définitive } if (sourceEvents.readyState == 0) { //traitement dans le cas d'une déconnexion temporaire } }; |
Sources
- https://developer.mozilla.org/en-US/docs/Web/API/EventSource
- https://html.spec.whatwg.org/multipage/comms.html#the-eventsource-interface
Vous avez lu gratuitement 353 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.