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()- Cette méthode crée un nouvel objet
EventSourceà partir de l'objetUSVStringfourni.
Propriétés
Cette interface hérite également des propriétés fournies par l'objet parent : EventTarget.
EventSource.readyStateLecture seule- Un nombre qui représente l'état de la connexion. Les valeurs possibles sont
CONNECTING(0) (connexion en cours),OPEN(1) (connexion ouverte), ouCLOSED(2) (connexion fermée). EventSource.urlLecture seule- Un objet
DOMStringqui représente l'URL de la source. EventSource.withCredentialsLecture seule- Un boolée qui indique si l'objete
EventSourcea été instancié avec les paramètres d'authentification CORS (true) ou non (false, la valeur par défaut).
Gestionnaires d'évènement
EventSource.onerror- Un objet
EventHandlerqui est appelé lorsqu'une erreur se produit et que l'évènementerrorest envoyé à l'objetEventSource. EventSource.onmessage- Un objet
EventHandlerqui est appelé lorsqu'un évènementmessageest reçu (ce qui signifie qu'on a reçu un message de la source). EventSource.onopen- Un objet
EventHandlerqui est appelé lorsqu'un évènementopenest 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
readyStateenCLOSED. Si la connexion est déjà fermée, la méthode ne fait rien.
Exemples
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
| Spécification | État | Commentaires |
|---|---|---|
| HTML Living Standard La définition de 'EventSource' dans cette spécification. |
Standard évolutif |
Compatibilité des navigateurs
| Fonctionnalité | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|---|
| Support simple | 6 | Pas de support | 6.0 (6.0) | Pas de support | (Oui) | 5 |
| Disponible dans les workers dédiés et partagés[1] | (Oui) | Pas de support | 53.0 (53.0) | Pas de support | (Oui) | (Oui) |
| Fonctionnalité | Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|
| Support simple | 4.4 | 45 | Pas de support | 12 | 4.1 |
| Disponible dans les workers dédiés et partagés[1] | (Oui) | 53.0 (53.0) | Pas de support | (Oui) | (Oui) |
[1] Pas encore disponible pour les service workers.