itd-api / NotificationEventsClientOptions
Interface: NotificationEventsClientOptions<C>
Defined in: events/client.ts:18
Опции конструктора NotificationEventsClient.
Extends
Type Parameters
C
C extends NotificationEventContext = NotificationEventContext
Properties
auth?
optional auth?: string | AuthProvider;Defined in: events/client.ts:29
Авторизация. Строка — сокращение для bearerToken().
Без неё поток идёт анонимно. Токен считается готовым: продлевать его клиент не умеет, а на отказ авторизации переподключение спрашивает токен заново. Сессия, которая входит по паролю и продлевает себя сама, живёт в полном ItdClient.
backoff?
optional backoff?: readonly number[];Defined in: events/reconnect.ts:22
Таблица пауз. Последнее значение действует для всех дальнейших попыток.
Inherited from
NotificationEventsOptions.backoff
baseUrl?
optional baseUrl?: string;Defined in: core/options.ts:186
Базовый URL API. По умолчанию https://xn--d1ah4a.com.
Укажите здесь адрес своего прокси, если работаете из браузера: CORS для сторонних источников на итд.com, скорее всего, не настроен.
Inherited from
clock?
optional clock?: ItdClock;Defined in: core/options.ts:230
Часы для тайм-аутов, повторов и очередей. Обычно подменяются только в тестах.
Inherited from
concurrency?
optional concurrency?: number;Defined in: events/stream.ts:127
Максимальное число одновременно обрабатываемых обновлений. По умолчанию 1.
Inherited from
NotificationEventsOptions.concurrency
fetch?
optional fetch?: {
(input, init?): Promise<Response>;
(input, init?): Promise<Response>;
};Defined in: core/options.ts:228
Своя реализация fetch: для Deno, React Native, тестов или прокси.
Call Signature
(input, init?): Promise<Response>;Parameters
input
URL | RequestInfo
init?
RequestInit
Returns
Promise<Response>
Call Signature
(input, init?): Promise<Response>;Parameters
input
string | URL | Request
init?
RequestInit
Returns
Promise<Response>
Inherited from
handshakeTimeout?
optional handshakeTimeout?: number;Defined in: events/stream.ts:107
Сколько ждать ответа на запрос потока, прежде чем оборвать попытку, мс. По умолчанию 20 000. Защищает от зависания на установке соединения, когда idleTimeout ещё не действует. 0 отключает проверку. Только для потокового транспорта.
Inherited from
NotificationEventsOptions.handshakeTimeout
headers?
optional headers?: Record<string, string>;Defined in: core/options.ts:234
Заголовки, добавляемые ко всем запросам, — например User-Agent для бота.
Inherited from
hooks?
optional hooks?: ClientHooks;Defined in: core/options.ts:247
Хуки запросов.
Inherited from
idleTimeout?
optional idleTimeout?: number;Defined in: events/stream.ts:101
Молчание сервера, после которого соединение считается мёртвым, мс. По умолчанию 90 000.
Сервер не присылает keep-alive, поэтому без этой проверки оборванное соединение может незаметно «зависнуть».
Inherited from
NotificationEventsOptions.idleTimeout
jitter?
optional jitter?: number;Defined in: events/reconnect.ts:24
Доля разброса, 0…1.
Inherited from
NotificationEventsOptions.jitter
logger?
optional logger?: boolean | Logger;Defined in: core/options.ts:249
Логгер. true — использовать console.
Inherited from
maxAttempts?
optional maxAttempts?: number;Defined in: events/reconnect.ts:26
Предел числа попыток.
Inherited from
NotificationEventsOptions.maxAttempts
mode?
optional mode?: RuntimeMode;Defined in: core/options.ts:232
Как обращаться с cookie. По умолчанию определяется по среде исполнения.
Inherited from
pollInterval?
optional pollInterval?: number;Defined in: events/stream.ts:109
Как часто опрашивать сервер, если используется запасной транспорт.
Inherited from
NotificationEventsOptions.pollInterval
rateLimit?
optional rateLimit?: false | RateLimitOptions;Defined in: core/options.ts:223
Ограничение нагрузки. false отключает очередь.
Inherited from
reconnectOnOnline?
optional reconnectOnOnline?: boolean;Defined in: events/stream.ts:125
Переподключаться при восстановлении сети. По умолчанию true. Только в браузере.
Inherited from
NotificationEventsOptions.reconnectOnOnline
reconnectOnVisible?
optional reconnectOnVisible?: boolean;Defined in: events/stream.ts:123
Переподключаться, когда вкладка снова становится видимой. По умолчанию true.
Только в браузере. У сайта итд.com такой обработки нет, из-за чего вкладка, пролежавшая в фоне, может остаться без соединения.
Inherited from
NotificationEventsOptions.reconnectOnVisible
retry?
optional retry?: false | RetryOptions;Defined in: core/options.ts:221
Повторные попытки. false отключает их полностью.
Inherited from
sequentialize?
optional sequentialize?: EventSequentializer<C>;Defined in: events/stream.ts:129
Возвращает ключи обновлений, которые нельзя обрабатывать одновременно.
Inherited from
NotificationEventsOptions.sequentialize
services?
optional services?: Record<string,
| string
| Omit<ServiceDefinition, "name">>;Defined in: core/options.ts:206
Сервисы платформы на отдельных доменах.
Ключ — имя сервиса, значение — базовый URL или определение целиком. Имя встроенного сервиса задаёт его хост; встроен один — status.
auth у встроенного сервиса наследуется, у нового выводится по хосту: токен уходит основному хосту и его поддоменам, остальным — по явному auth: true.
Example
const itd = new ItdClient({
services: {
status: 'https://my-proxy.example/status',
pb: { baseUrl: 'https://pbapi.xn--d1ah4a.com', headers: { Referer: 'https://pixel.xn--d1ah4a.com/' } },
},
});Inherited from
shutdownTimeout?
optional shutdownTimeout?: number;Defined in: core/options.ts:219
Сколько close() и dispose() ждут чужой код, мс. По умолчанию 10000.
Ждут обработчиков событийного канала и операций, вошедших в обёртки плагинов. По истечении срока ресурсы всё равно освобождаются, а метод отклоняется ItdStateError с указанием того, что удерживало остановку. 0 снимает ограничение.
Inherited from
RuntimeOptions.shutdownTimeout
syncCount?
optional syncCount?: boolean;Defined in: events/stream.ts:116
Запрашивать число непрочитанных при подключении. По умолчанию true.
Так поступает сайт итд.com: поток присылает только новые события, а начальное значение счётчика нужно получить отдельно.
Inherited from
NotificationEventsOptions.syncCount
timeout?
optional timeout?: number;Defined in: core/options.ts:211
Таймаут запроса в мс. По умолчанию 30000 — столько же использует сайт итд.com. 0 снимает ограничение.
Inherited from
transport?
optional transport?:
| EventTransport
| NotificationEventsTransport;Defined in: events/stream.ts:94
Транспорт. По умолчанию auto: поток событий, если среда умеет читать тело ответа по частям, иначе опрос.
Можно передать и свою реализацию EventTransport — это пригодится, если у платформы появится WebSocket либо нужен нестандартный способ доставки.
Inherited from
NotificationEventsOptions.transport
userAgent?
optional userAgent?: string | false;Defined in: core/options.ts:242
Значение заголовка User-Agent. false — не отправлять его вовсе.
По умолчанию Mozilla/5.0 (compatible; itd-api/<версия>; …): fetch в Node не шлёт User-Agent сам, а сайт стоит за DDoS-Guard, который такие запросы может не пропустить. В браузере опция не действует — там заголовок менять запрещено.