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