itd-api / EventChannel
Class: EventChannel<U, C, E, O>
Defined in: events/engine.ts:202
Общая механика потока событий: соединение, переподключение с задержкой, обновление токена, реакция на среду, статусы и очередь обработчиков.
Ничего не знает о домене: что считать обновлением, как собрать контекст и кому его доставить, решают EventChannelDeps. Поэтому один и тот же движок несёт и поток уведомлений, и любой другой.
Type Parameters
U
U
C
C extends EventContext<U, unknown, O>
E
E extends EventChannelEvents<C> = EventChannelEvents<C>
O
O = unknown
Constructors
Constructor
new EventChannel<U, C, E, O>(deps, options?): EventChannel<U, C, E, O>;Defined in: events/engine.ts:236
Parameters
deps
EventChannelDeps<U, C, O>
options?
EventChannelOptions<C> = {}
Returns
EventChannel<U, C, E, O>
Accessors
status
Get Signature
get status(): EventChannelStatus;Defined in: events/engine.ts:260
Текущее состояние соединения.
Returns
transport
Get Signature
get transport(): string;Defined in: events/engine.ts:265
Имя используемого транспорта.
Returns
string
Methods
connect()
connect(): Promise<void>;Defined in: events/engine.ts:315
Поднимает соединение.
Повторный вызов при уже живом соединении ничего не делает. Возвращает управление сразу после запуска: соединение живёт в фоне.
Returns
Promise<void>
disconnect()
disconnect(): void;Defined in: events/engine.ts:330
Закрывает соединение и отменяет запланированные попытки.
Returns
void
drain()
drain(): Promise<void>;Defined in: events/engine.ts:358
Ждёт обработчики и полное завершение уже остановленной сессии соединения.
Работающий транспорт намеренно не блокирует drain(): сначала владелец вызывает disconnect, который синхронно отменяет сессию. После этого drain() ждёт завершения подготовки, транспорта и фонового обновления авторизации, включая их асинхронное освобождение ресурсов.
Returns
Promise<void>
emit()
emit<K>(event, payload): void;Defined in: events/engine.ts:280
Рассылает доменное событие через общий эмиттер потока.
Type Parameters
K
K extends string | number | symbol
Parameters
event
K
payload
E[K]
Returns
void
on()
on<K>(event, listener): Unsubscribe;Defined in: events/engine.ts:270
Подписывается на событие потока.
Type Parameters
K
K extends string | number | symbol
Parameters
event
K
listener
Listener<E[K]>
Returns
функция отписки
once()
once<K>(event, listener): Unsubscribe;Defined in: events/engine.ts:275
Подписывается на одно срабатывание события потока.
Type Parameters
K
K extends string | number | symbol
Parameters
event
K
listener
Listener<E[K]>
Returns
onUpdate()
onUpdate(predicate, handler): Unsubscribe;Defined in: events/engine.ts:305
Подписывает обработчик обновлений, подходящих под условие.
Parameters
predicate
handler
EventHandler<C>
Returns
removeAllListeners()
removeAllListeners(): void;Defined in: events/engine.ts:285
Снимает подписки на события. Обработчики обновлений и middleware остаются.
Returns
void
use()
use(middleware): Unsubscribe;Defined in: events/engine.ts:290
Добавляет промежуточный обработчик.
Parameters
middleware
| EventMiddleware<C> | EventMiddlewareObject<C>
Returns
функция его удаления