Ricerca…


Sintassi

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

Impostazione di un flusso di eventi di base sul server

È possibile impostare il browser client per ascoltare gli eventi del server in arrivo utilizzando l'oggetto EventSource . Sarà necessario fornire al costruttore una stringa del percorso all'API del server 'API che sottoscriverà il client agli eventi del server.

Esempio:

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

Gli eventi hanno nomi con cui sono classificati e inviati e un ascoltatore deve essere configurato per ascoltare ognuno di questi eventi per nome. il nome dell'evento predefinito è un message e per ascoltarlo è necessario utilizzare il listener di eventi appropriato, .onmessage

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

La funzione sopra riportata verrà eseguita ogni volta che il server invierà un evento al client. I dati vengono inviati come text/plain , se si inviano dati JSON è possibile che si desideri analizzarli.

Chiusura di un flusso di eventi

Un flusso di eventi sul server può essere chiuso utilizzando il metodo EventSource.close()

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

Il metodo .close() non fa nulla è il flusso è già chiuso.

Ascoltare i listener di eventi a EventSource

È possibile associare i listener di EventSource all'oggetto EventSource per ascoltare canali di eventi diversi utilizzando il metodo .addEventListener .

EventSource.addEventListener (nome: String, callback: Function, [opzioni])

nome : il nome relativo al nome del canale al quale il server sta trasmettendo eventi.

callback : la funzione callback viene eseguita ogni volta che viene emesso un evento associato al canale, la funzione fornisce l' event come argomento.

opzioni : Opzioni che caratterizzano il comportamento del listener di eventi.

L'esempio seguente mostra un flusso di eventi heartbeat dal server, il server invia eventi sul canale heartbeat e questa routine verrà sempre eseguita quando un evento è accettato.

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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow