--- title: EventSource slug: Web/API/EventSource tags: - API - Eventos Server-sent - Interfaz translation_of: Web/API/EventSource ---
{{APIRef("Websockets API")}}

La interfaz EventSource se utiliza para recibir eventos server-side. Se realiza la conexión a un servidor sobre HTTP y se reciben eventos en formato text/event-stream sin tener que cerrar la conexión.

Constructor

{{domxref("EventSource.EventSource", "EventSource()")}}
Crea un nuevo  EventSource a partiendo de un valor {{domxref("USVString")}}.

Propiedades

Esta interfaz también heredará propiedades de su antecesor, {{domxref("EventTarget")}}.

{{domxref("EventSource.readyState")}} {{readonlyinline}}
Un número representando el estado de la conexión. Los valores posibles son CONECTANDO (0), ABIERTO (1), o CERRADO (2).
{{domxref("EventSource.url")}} {{readonlyinline}}
Un valor {{domxref("DOMString")}} representando la URL de la fuente.
{{domxref("EventSource.withCredentials")}} {{readonlyinline}}
Un valor {{domxref("Boolean")}} indicando si el objecto EventSource ha sido instanciado con credeciales CORS disponibles (true) o no (false, valor por defecto).

Manejadores de Eventos

{{domxref("EventSource.onerror")}}
En un {{domxref("EventHandler")}} que se invoca cuando ocurre un error y se envía el evento {{event("error")}} a través del objeto EventSource.
{{domxref("EventSource.onmessage")}}
Es un {{domxref("EventHandler")}} que se invoca cuando se recibe un evento {{event("message")}}, que indica que se ha enviado un mensaje desde la fuente.
{{domxref("EventSource.onopen")}}
Es un {{domxref("EventHandler")}} que se invoca cuando se recibe un evento {{event("open")}}, que sucede en el momento que la conexión se abre.

Métodos

Esta interfaz también heredará métodos de su antecesor, {{domxref("EventTarget")}}.

{{domxref("EventSource.close()")}}
Cierra la conexión, si ésta existe, y asigna el valor CLOSED al atributo readyState. Si la conexión ya estaba cerrada, este método no hace nada.

Ejemplos

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);
}

Nota: Está disponible un ejemplo completo en GitHub — ver Simple SSE demo using PHP.

Especificaciones

Especificación Estado Comentario
{{SpecName('HTML WHATWG', "comms.html#the-eventsource-interface", "EventSource")}} {{Spec2('HTML WHATWG')}}  

Compatibilidad de navegadoresEdit

{{CompatibilityTable}}
Característica Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Soporte EventSource 6 {{CompatNo}} {{CompatGeckoDesktop("6.0")}} {{CompatNo}} {{CompatVersionUnknown}} 5
Disponible en workers compartidos y dedicados[1] {{CompatVersionUnknown}} {{CompatNo}} {{CompatGeckoDesktop("53.0")}} {{CompatNo}} {{CompatVersionUnknown}} {{CompatVersionUnknown}}
Características Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Soporte EventSource 4.4 45 {{CompatNo}} 12 4.1
Disponible en workers compartidos y dedicados[1] {{CompatVersionUnknown}} {{CompatGeckoMobile("53.0")}} {{CompatNo}} {{CompatVersionUnknown}} {{CompatVersionUnknown}}

[1] Pero todavía no disponible en service workers.

Ver también