Buscar..


Sintaxis

  • nuevo EventSource ("api / stream");
  • eventSource.onmessage = function (event) {}
  • eventSource.onerror = function (event) {};
  • eventSource.addEventListener = function (name, callback, options) {};
  • eventSource.readyState;
  • eventSource.url;
  • eventSource.close ();

Configuración de un flujo de eventos básico al servidor

Puede configurar el navegador de su cliente para escuchar los eventos entrantes del servidor utilizando el objeto EventSource . Deberá proporcionar al constructor una cadena de la ruta a la API del servidor para que suscriba al cliente a los eventos del servidor.

Ejemplo:

var eventSource = new EventSource("api/my-events");

Los eventos tienen nombres con los que se clasifican y envían, y un oyente debe estar configurado para escuchar cada uno de esos eventos por nombre. el nombre del evento predeterminado es message y para escucharlo debe usar el detector de eventos apropiado, .onmessage

evtSource.onmessage = function(event) {
  var data = JSON.parse(event.data);
  // do something with data
}

La función anterior se ejecutará cada vez que el servidor enviará un evento al cliente. Los datos se envían como text/plain , si envía datos JSON es posible que desee analizarlos.

Cerrar un flujo de eventos

Se puede cerrar un flujo de eventos al servidor usando el método EventSource.close()

var eventSource = new EventSource("api/my-events");
// do things ...
eventSource.close(); // you will not receive anymore events from this object

El método .close() no hace nada si el flujo ya está cerrado.

Vinculando a los oyentes de eventos a EventSource

Puede vincular los escuchas de eventos al objeto EventSource para escuchar diferentes canales de eventos utilizando el método .addEventListener .

EventSource.addEventListener (nombre: cadena, devolución de llamada: función, [opciones])

nombre : el nombre relacionado con el nombre del canal al que el servidor emite eventos.

devolución de llamada : la función de devolución de llamada se ejecuta cada vez que se emite un evento vinculado al canal, la función proporciona el event como un argumento.

opciones : opciones que caracterizan el comportamiento del detector de eventos.

El siguiente ejemplo muestra un flujo de eventos de latido del servidor, el servidor envía eventos en el canal de heartbeat y esta rutina siempre se ejecutará cuando se acepte un evento.

var eventSource = new EventSource("api/heartbeat");
...
eventSource.addEventListener("heartbeat", function(event) {
  var status = event.data;
  if (status=='OK') { 
    // do something
  }
});


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow