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


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow