EventSource
in package
FinalYes
Клиент Server-Sent Events с переподключением.
Подписывается на поток text/event-stream, разбирает его по мере поступления
(EventStreamParser) и передаёт события обработчику. При сетевом сбое
переподключается не более $maxReconnects раз, выдерживая рекомендованную
сервером паузу (retry) и сообщая Last-Event-ID, чтобы сервер продолжил
поток без потерь. Обработчик может вернуть false, чтобы отписаться.
Общий таймаут для потока снимается (поток бесконечен); от зависаний
защищает таймаут простоя (Tuning).
Table of Contents
Methods
- __construct() : mixed
- listen() : void
- Подписаться на поток и обрабатывать события до его закрытия.
Methods
__construct()
public
__construct(Client $client[, int $maxReconnects = 3 ][, callable(int): void|null $sleeper = null ]) : mixed
Parameters
- $client : Client
-
клиент, выполняющий подписку
- $maxReconnects : int = 3
-
максимум переподключений после сбоев
- $sleeper : callable(int): void|null = null
-
пауза в микросекундах (для тестов)
listen()
Подписаться на поток и обрабатывать события до его закрытия.
public
listen(string $url, callable(ServerSentEvent): mixed $onEvent) : void
Parameters
- $url : string
-
адрес потока
- $onEvent : callable(ServerSentEvent): mixed
-
обработчик события (
false— отписаться)