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