Поиск…


Синтаксис

  • новый EventSource («api / stream»);
  • eventSource.onmessage = функция (событие) {}
  • eventSource.onerror = функция (событие) {};
  • eventSource.addEventListener = функция (имя, обратный вызов, параметры) {};
  • eventSource.readyState;
  • eventSource.url;
  • eventSource.close ();

Настройка основного потока событий на сервер

Вы можете настроить клиентский браузер для прослушивания входящих событий на сервере с помощью объекта EventSource . Вам нужно будет предоставить конструктору строку пути к серверу «en en en», который будет подписывать клиента на события сервера.

Пример:

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

События имеют имена, с которыми они классифицируются и отправляются, а слушатель должен быть настроен для прослушивания каждого такого события по имени. имя события по умолчанию - это message и для его прослушивания вы должны использовать соответствующий прослушиватель событий, .onmessage

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

Вышеупомянутая функция будет запускаться каждый раз, когда сервер будет вызывать событие клиенту. Данные отправляются как text/plain , если вы отправляете данные JSON, вы можете его проанализировать.

Закрытие потока событий

Поток событий на сервер можно закрыть с помощью метода EventSource.close()

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

Метод .close() ничего не делает, поток уже закрыт.

Слушатели событий привязки к EventSource

Вы можете привязать обработчик событий EventSource объекта для прослушивания различных событий каналов с использованием .addEventListener методы.

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

name : имя, связанное с именем канала, на который сервер передает события.

callback : функция обратного вызова запускается каждый раз, когда событие, связанное с каналом, испускается, функция предоставляет event в качестве аргумента.

options : Параметры, характеризующие поведение прослушивателя событий.

В следующем примере показан поток событий heartbeat с сервера, сервер отправляет события на канале heartbeat и эта процедура всегда будет выполняться при принятом событии.

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
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow