Установка
Сборка клиента
.Build(ctx) устанавливает WebSocket-соединение до возврата - переданный контекст управляет начальным подключением. Если соединение не удаётся, вы сразу получаете ошибку. Далее клиент работает до Close().
Методы билдера
.URL(url) - Основной WebSocket-эндпоинт. Резерв: переменная ORBITFLARE_WS_URL.
.URLs(urls...) - Основной и резервные за один вызов.
.FallbackURL(url) / .FallbackURLs(urls...) - Добавить резервные эндпоинты. При переподключении SDK перебирает их.
.APIKey(key) - Лицензионный ключ. Резерв: переменная ORBITFLARE_LICENSE_KEY. Подставляется в URL при подключении, никогда не попадает в логи или ошибки.
.Retry(policy) - Backoff переподключения. По умолчанию: 100 мс начальная, 30 с максимум, множитель 2x, бесконечно.
.PingInterval(duration) - Как часто SDK отправляет WebSocket-кадры Ping. По умолчанию 10 с.
.MaxMissedPongs(n) - Сколько ping без ответа допустимо, прежде чем соединение будет закрыто. По умолчанию 3.
.Logger(logger) - *slog.Logger для событий жизненного цикла соединения. Если не задан, управляется через ORBITFLARE_LOG.
Доступные подписки
SlotSubscribe(ctx)
Срабатывает каждый раз, когда слот обработан, подтверждён или финализирован.
slot, parent и root:
AccountSubscribe(ctx, address, commitment)
Срабатывает при изменении данных указанного аккаунта.
LogsSubscribe(ctx, mentions, commitment)
Срабатывает для транзакций, упоминающих заданные адреса. Передайте пустой срез для всех транзакций.
SignatureSubscribe(ctx, signature, commitment)
Срабатывает один раз, когда транзакция достигает заданного уровня commitment. Удобно для подтверждения только что отправленной транзакции.
Чтение событий
Все подписки возвращают*ws.Subscription. Вызовите Next(ctx), чтобы получить следующее событие:
Next(ctx) возвращает (json.RawMessage, bool). Если ok равно false, подписка завершена (контекст отменён или клиент закрыт).
Отписка
Несколько подписок
Все подписки работают на одном WebSocket-соединении. SDK внутри маршрутизирует уведомления к нужной подписке.Переподключение
Если соединение обрывается, фоновая горутина переподключается с экспоненциальным backoff и автоматически переоформляет все подписки. Ваши вызовыNext(ctx) продолжают работать - события возобновляются, как только соединение восстановлено.