CloudCastle Curl

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 — отписаться)

Tags
throws
NetworkException

если исчерпаны переподключения

HttpStatusException

если сервер ответил кодом ошибки

On this page

Search results