Suche…


Syntax

  • neue EventSource ("API / Stream");
  • eventSource.onmessage = Funktion (Ereignis) {}
  • eventSource.onerror = function (event) {};
  • eventSource.addEventListener = Funktion (Name, Rückruf, Optionen) {};
  • eventSource.readyState;
  • eventSource.url;
  • eventSource.close ();

Einrichten eines grundlegenden Ereignisstroms zum Server

Sie können Ihren Client-Browser so EventSource eingehende Serverereignisse mithilfe des EventSource Objekts EventSource werden. Sie müssen dem Konstruktor eine Zeichenfolge des Pfads zur API des Servers angeben, mit der der Client die Serverereignisse abonnieren soll.

Beispiel:

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

Ereignisse haben Namen, mit denen sie kategorisiert und gesendet werden. Ein Listener muss so eingerichtet sein, dass er jedes Ereignis nach Namen abhört. Der Standardereignisname lautet " message und zum Abhören des Ereignisses müssen Sie den entsprechenden Ereignis-Listener " .onmessage

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

Die obige Funktion wird jedes Mal ausgeführt, wenn der Server ein Ereignis an den Client sendet. Daten werden als text/plain gesendet. Wenn Sie JSON-Daten senden, möchten Sie sie möglicherweise analysieren.

Einen Ereignisstrom schließen

Ein Ereignisstrom zum Server kann mit der Methode EventSource.close() werden

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

Die Methode .close() tut nichts, .close() der Stream bereits geschlossen ist.

Ereignis-Listener an EventSource binden

Sie können Ereignis-Listener an das EventSource Objekt binden, um verschiedene Ereigniskanäle mithilfe der .addEventListener Methode zu .addEventListener .

EventSource.addEventListener (Name: String, Callback: Funktion, [Optionen])

name : Der Name, der sich auf den Namen des Kanals bezieht, an den der Server Ereignisse sendet.

Callback : Die Callback-Funktion wird jedes Mal ausgeführt, wenn ein an den Kanal gebundenes Ereignis ausgegeben wird. Die Funktion stellt das event als Argument bereit.

options : Optionen, die das Verhalten des Ereignis-Listeners charakterisieren.

Das folgende Beispiel zeigt einen Heartbeat-Ereignisstrom vom Server. Der Server sendet Ereignisse auf dem heartbeat Kanal. Diese Routine wird immer ausgeführt, wenn ein Ereignis akzeptiert wird.

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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow