Szukaj…
Składnia
- nowe EventSource („api / stream”);
- eventSource.onmessage = function (event) {}
- eventSource.onerror = function (event) {};
- eventSource.addEventListener = funkcja (nazwa, wywołanie zwrotne, opcje) {};
- eventSource.readyState;
- eventSource.url;
- eventSource.close ();
Konfigurowanie podstawowego strumienia zdarzeń na serwerze
Możesz skonfigurować przeglądarkę klienta, aby nasłuchiwała nadchodzących zdarzeń serwera za pomocą obiektu EventSource
. Musisz podać konstruktorowi ciąg ścieżki do interfejsu API serwera, aby subskrybować klienta do zdarzeń serwera.
Przykład:
var eventSource = new EventSource("api/my-events");
Zdarzenia mają nazwy, według których są kategoryzowane i wysyłane, a nasłuchiwanie musi być skonfigurowane do słuchania każdego takiego zdarzenia według nazwy. domyślną nazwą zdarzenia jest message
i aby go odsłuchać, należy użyć odpowiedniego detektora zdarzeń, .onmessage
evtSource.onmessage = function(event) {
var data = JSON.parse(event.data);
// do something with data
}
Powyższa funkcja będzie działać za każdym razem, gdy serwer przekaże zdarzenie klientowi. Dane są wysyłane jako text/plain
, jeśli wysyłasz dane JSON, możesz je przeanalizować.
Zamykanie strumienia zdarzeń
Strumień zdarzeń do serwera można zamknąć za pomocą metody EventSource.close()
var eventSource = new EventSource("api/my-events");
// do things ...
eventSource.close(); // you will not receive anymore events from this object
Metoda .close()
nic nie robi, strumień jest już zamknięty.
Wiązanie detektorów zdarzeń z EventSource
Można powiązać detektory zdarzeń z obiektem EventSource
celu nasłuchiwania różnych kanałów zdarzeń za pomocą metody .addEventListener
.
EventSource.addEventListener (nazwa: ciąg, wywołanie zwrotne: funkcja, [opcje])
nazwa : nazwa związana z nazwą kanału, na który serwer emituje zdarzenia.
wywołanie zwrotne : funkcja wywołania zwrotnego jest uruchamiana za każdym razem, gdy emitowane jest zdarzenie powiązane z kanałem, funkcja podaje event
jako argument.
opcje : Opcje charakteryzujące zachowanie nasłuchiwania zdarzeń.
Poniższy przykład pokazuje strumień zdarzeń pulsu z serwera, serwer wysyła zdarzenia w kanale heartbeat
, a ta procedura będzie zawsze działać, gdy zdarzenie zostanie zaakceptowane.
var eventSource = new EventSource("api/heartbeat");
...
eventSource.addEventListener("heartbeat", function(event) {
var status = event.data;
if (status=='OK') {
// do something
}
});