Sök…


Syntax

  • ny EventSource ("api / stream");
  • eventSource.onmessage = funktion (händelse) {}
  • eventSource.onerror = funktion (händelse) {};
  • eventSource.addEventListener = funktion (namn, återuppringning, alternativ) {};
  • eventSource.readyState;
  • eventSource.url;
  • eventSource.close ();

Ställa in en grundläggande händelseström till servern

Du kan ställa in din klientwebbläsare för att lyssna på inkommande EventSource med EventSource objektet. Du måste tillhandahålla konstruktören en sträng av sökvägen till serverns API: n, vilket kommer att prenumerera klienten till serverhändelserna.

Exempel:

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

Händelser har namn som de kategoriseras och skickas med, och en lyssnare måste vara inställd för att lyssna på varje sådan händelse med namn. standardhändelsens namn är message och för att lyssna på det måste du använda lämplig händelselister, .onmessage

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

Ovanstående funktion körs varje gång servern trycker på en händelse till klienten. Data skickas som text/plain , om du skickar JSON-data kanske du vill analysera dem.

Stänger en händelsesström

En händelseström till servern kan stängas med EventSource.close()

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

.close() gör ingenting, strömmen är redan stängd.

Bindar händelselister till EventSource

Du kan binda händelselister till EventSource objektet för att lyssna på olika händelsekanaler med metoden .addEventListener .

EventSource.addEventListener (namn: String, återuppringning: Funktion, [alternativ])

namn : Namnet relaterat till namnet på kanalen som servern avger händelser till.

återuppringning : Återuppringningsfunktionen körs varje gång en händelse bunden till kanalen sänds, ger funktionen event som ett argument.

alternativ : Alternativ som kännetecknar händelsets lyssnares beteende.

Följande exempel visar en hjärtslagshändelse från servern, servern skickar händelser på heartbeat och denna rutin kommer alltid att köras när en händelse accepteras.

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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow