Установка
ws - опциональная peer-зависимость. Устанавливайте её, только если используете WebSocket-клиент.
Сборка клиента
.build() асинхронный - перед резолвом устанавливается WebSocket-соединение. При ошибке подключения промис отклоняется сразу.
Методы билдера
.url(url) - основной WebSocket-эндпоинт. Резерв: переменная ORBITFLARE_WS_URL.
.urls([...]) - основной и резервные за один вызов.
.fallbackUrl(url) / .fallbackUrls([...]) - добавить резерв для failover. При переподключении SDK перебирает их по очереди.
.apiKey(key) - лицензионный ключ. Резерв: ORBITFLARE_LICENSE_KEY.
.retry(policy) - backoff при переподключении. По умолчанию: 100 мс начальная, 30 с максимум, 2×, бесконечные попытки.
.pingIntervalSecs(n) - как часто SDK отправляет фреймы WebSocket Ping. По умолчанию: 10.
.maxMissedPongs(n) - сколько ping без ответа перед обрывом соединения. По умолчанию: 3.
Доступные подписки
slotSubscribe()
Срабатывает при обработке, подтверждении или финализации слота.
slot, parent и root:
accountSubscribe(address, commitment)
Срабатывает при изменении данных указанного аккаунта.
logsSubscribe(mentions, commitment)
Для транзакций, в которых фигурируют указанные адреса. Передайте пустой массив для всех транзакций.
signatureSubscribe(signature, commitment)
Срабатывает один раз, когда транзакция достигает заданного уровня commitment. Удобно для подтверждения только что отправленной транзакции.
Чтение событий
Все подписки возвращаютWsSubscription. Вызовите .next() для следующего события:
.next() резолвится в undefined, когда подписка закрыта.
Также можно подключить колбэк в стиле слушателя событий:
Отписка
Несколько подписок
Все подписки идут по одному WebSocket-соединению. SDK маршрутизирует уведомления на нужную подписку внутри себя.Переподключение
Если соединение обрывается, фоновая задача переподключается с экспоненциальным backoff и автоматически заново подписывается. Ваши вызовы.next() продолжают работать - события возобновятся после восстановления связи.