Zoeken…


Syntaxis

  • nieuwe EventSource ("api / stream");
  • eventSource.onmessage = function (event) {}
  • eventSource.onerror = function (event) {};
  • eventSource.addEventListener = functie (naam, callback, opties) {};
  • eventSource.readyState;
  • eventSource.url;
  • eventSource.close ();

Een basisgebeurtenissenstroom naar de server instellen

U kunt uw clientbrowser instellen om te luisteren naar inkomende servergebeurtenissen met behulp van het EventSource object. U moet de constructor een string van het pad naar de server-API opgeven en de client abonneren op de servergebeurtenissen.

Voorbeeld:

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

Gebeurtenissen hebben namen waarmee ze zijn gecategoriseerd en verzonden, en een luisteraar moet worden ingesteld om naar elke dergelijke gebeurtenis op naam te luisteren. de standaardnaam van de gebeurtenis is message en om ernaar te luisteren, moet u de juiste gebeurtenislistener, .onmessage , .onmessage

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

De bovenstaande functie wordt elke keer uitgevoerd als de server een gebeurtenis naar de client stuurt. Gegevens worden verzonden als text/plain , als u JSON-gegevens verzendt, wilt u deze mogelijk ontleden.

Een evenementenstream sluiten

Een gebeurtenisstream naar de server kan worden gesloten met behulp van de methode EventSource.close()

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

De methode .close() doet niets, de stream is al gesloten.

Bindende gebeurtenisluisteraars aan EventSource

U kunt gebeurtenislisteners binden aan het EventSource object om naar verschillende gebeurteniskanalen te luisteren met de methode .addEventListener .

EventSource.addEventListener (name: String, callback: Function, [options])

naam : de naam gerelateerd aan de naam van het kanaal waarnaar de server evenementen uitzendt.

callback : de callback-functie wordt uitgevoerd telkens wanneer een gebeurtenis die aan het kanaal is gebonden wordt uitgezonden, de functie biedt de event als argument.

opties : opties die het gedrag van de gebeurtenislistener karakteriseren.

Het volgende voorbeeld toont een hartslaggebeurtenissenstroom van de server, de server verzendt gebeurtenissen op het heartbeat en deze routine wordt altijd uitgevoerd als een gebeurtenis wordt geaccepteerd.

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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow