Поиск…
Синтаксис
- новый 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
}
});