EventSource

L'interface EventSource est utilisée afin de recevoir des évènements envoyés par le serveur. Elle se connecte à un serveur via HTTP et reçoit des évènements au format text/event-stream avant de clôturer la connexion.

Constructeur

EventSource() (en-US)

Cette méthode crée un nouvel objet EventSource à partir de l'objet USVString fourni.

Propriétés

Cette interface hérite également des propriétés fournies par l'objet parent : EventTarget.

EventSource.readyState (en-US) Lecture seule

Un nombre qui représente l'état de la connexion. Les valeurs possibles sont CONNECTING (0) (connexion en cours), OPEN (1) (connexion ouverte), ou CLOSED (2) (connexion fermée).

EventSource.url (en-US) Lecture seule

Un objet DOMString qui représente l'URL de la source.

EventSource.withCredentials (en-US) Lecture seule

Un booléen qui indique si l'objet EventSource a été instancié avec les paramètres d'authentification CORS (true) ou non (false, la valeur par défaut).

Gestionnaires d'évènement

EventSource.onerror (en-US)

Un gestionnaire d'évènement qui est appelé lorsqu'une erreur se produit et que l'évènement error (en-US) est envoyé à l'objet EventSource.

EventSource.onmessage (en-US)

Un gestionnaire d'évènement qui est appelé lorsqu'un évènement message (en-US) est reçu (ce qui signifie qu'on a reçu un message de la source).

EventSource.onopen

Un gestionnaire d'évènement qui est appelé lorsqu'un évènement open est reçu, ce qui indique que la connexion vient d'être ouverte.

Méthodes

Cette interface hérite également de méthodes grâce à son objet parent : EventTarget.

EventSource.close()

Cette méthode ferme la connexion s'il y en a une en cours et change la valeur de l'attribut readyState en CLOSED. Si la connexion est déjà fermée, la méthode ne fait rien.

Exemples

js
var evtSource = new EventSource("sse.php");
var eventList = document.querySelector("ul");

evtSource.onmessage = function (e) {
  var newElement = document.createElement("li");

  newElement.textContent = "message: " + e.data;
  eventList.appendChild(newElement);
};

Note : Un exemple complet est disponible sur GitHub, voir la démonstration SSE avec PHP.

Spécifications

Specification
HTML Standard
# the-eventsource-interface

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi