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