--- title: EventSource slug: Web/API/EventSource tags: - API - Interface - Reference translation_of: Web/API/EventSource ---
{{APIRef("Websockets API")}}

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

{{domxref("EventSource.EventSource", "EventSource()")}}
Cette méthode crée un nouvel objet EventSource à partir de l'objet {{domxref("USVString")}} fourni.

Propriétés

Cette interface hérite également des propriétés fournies par l'objet parent : {{domxref("EventTarget")}}.

{{domxref("EventSource.readyState")}} {{readonlyinline}}
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).
{{domxref("EventSource.url")}} {{readonlyinline}}
Un objet {{domxref("DOMString")}} qui représente l'URL de la source.
{{domxref("EventSource.withCredentials")}} {{readonlyinline}}
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

{{domxref("EventSource.onerror")}}
Un objet {{domxref("EventHandler")}} qui est appelé lorsqu'une erreur se produit et que l'évènement {{event("error")}} est envoyé à l'objet EventSource.
{{domxref("EventSource.onmessage")}}
Un objet {{domxref("EventHandler")}} qui est appelé lorsqu'un évènement {{event("message")}} est reçu (ce qui signifie qu'on a reçu un message de la source).
{{domxref("EventSource.onopen")}}
Un objet {{domxref("EventHandler")}} qui est appelé lorsqu'un évènement {{event("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 : {{domxref("EventTarget")}}.

{{domxref("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

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
{{SpecName('HTML WHATWG', "comms.html#the-eventsource-interface", "EventSource")}} {{Spec2('HTML WHATWG')}}

Compatibilité des navigateurs

{{Compat("api.EventSource")}}

Voir aussi