OnAir Entertainment — обзор и интеграция
Краткий обзор
OnAir Entertainment — студийный провайдер Live-казино с упором на качественный видеопродакшн, многокамерные ракурсы и быстрое подключение к платформам операторов/агрегаторов. Портфель покрывает основные дисциплины Live: рулетка, блэкджек, баккара и их «скоростные»/авто-варианты, а также лайв-шоу-форматы. Техстек ориентирован на низкую задержку трансляции (WebRTC) с fallback на HLS/DASH, геораспределенную доставку и стабильный бэкенд для ставок/выплат в реальном времени.
Кому подходит: средним и крупным операторам, которым важны гибкая настройка лимитов, локализация, прозрачные коллбеки кошелька и детальная телеметрия по столам.
Портфель и пользовательский опыт
Основные продукты
Рулетка: европейская/американская, авто-рулетка, Speed/Lightning-темп, дорожки статистики (hot/cold), быстрые повторы ставок.
Блэкджек: классический и Speed-столы, Bet Behind, страховки/сайд-ставки по правилам стола.
Баккара: классическая, No Commission, Speed-режимы, «дорожные карты» (Roadmaps).
Лайв-шоу/спешалы: быстрые телевизионные форматы и тематические столы.
UX/UI
Адаптивный HTML5-клиент, минималистичный UI, быстрые чипы и пресеты ставок.
История спинов/раздач, чаты с модерацией, уведомления о лимитах.
Мультиязычный интерфейс, локализация форматов дат/разделителей, поддержка мультивалют.
Ответственная игра
Поддержка ограничений по ставкам/времени, скрытие столов по гео/возрасту (флаги оператора), отображение политик Responsible Gaming.
Технологии стриминга и производительность
Протоколы: WebRTC (низкая задержка ~0.5–2.5 с при стабильной сети); fallback на HLS/DASH при деградации.
CDN/Edge: PoP-распределение, health-checks нод, sticky-routing к ближайшему узлу.
ABR: адаптивный битрейт, бесшовные переключения качества без обрыва.
Мобильные клиенты: аппаратное декодирование, оптимизация энергопотребления, устойчивость к фоновым переключениям.
Рекомендации по сети
Latency до edge < 150–200 мс для комфортного UX.
HTTP/2+, TLS 1.2+, TCP BBR (по возможности), приоритезация мультимедийного трафика.
Математика, лимиты и расчеты
RTP/House Edge: соответствуют правилам конкретных столов и сайд-ставок (раскрываются в правилах стола).
Лимиты: мин/макс по столу и/или игроку, VIP-уровни, отдельные потолки для сайд-ставок.
Валюты: внутренняя единица в minor-юнитах; конвертация и отображение — на стороне оператора; корректные округления по юрисдикции.
Модели коммерции: RevShare/Flat/Hybrid — на уровне договора, фискально «вне» клиентской математики.
Модель интеграции
Высокоуровневая схема
1. Игрок → Frontend оператора → SSO/JWT
2. Operator/Aggregator API ↔ OnAir API: создание/валидация сессии
3. Клиент ↔ WebRTC/HLS: видеопоток
4. Клиент ↔ WebSocket: ставки/события в реальном времени
5. OnAir → Webhook/Callback к оператору: авторизации списаний/выплат
6. Кошелек оператора (Auth Debit/Credit) ↔ Ledger/KYC/AML
7. BI/Anti-Fraud/Monitoring: аудит, ретраи, reconciliation
Требования к окружению
Безопасность: Mutual-TLS/allowlist для S2S, JWT/OAuth2 для сессий, короткие TTL и ротация ключей.
Производительность: авто-масштабирование WS-шардов, балансировщик с sticky-сессиями.
Совместимость: актуальные Chrome/Edge/Safari/Firefox, iOS/Android WebView.
Сессии, запуск и аутентификация
SSO-паттерн
Оператор создает короткоживущий токен с `player_id`, валютой, локалью и лимитами. Провайдер возвращает `launch_url`.
Пример (псевдо-REST, S2S):
POST /api/v1/sessions
Authorization: Bearer <operator-key>
{
"player_id": "u_57291",
"currency": "EUR",
"locale": "ru-RU",
"limits": { "table_min": 1. 00, "table_max": 10000. 00 },
"meta": { "vip_level": 2, "return_url": "https://op. example. com/return" }
}
Ответ:
{
"session_id": "sess_abcd1234",
"launch_url": "https://onair. example/launch? sess=sess_abcd1234",
"expires_in": 3600
}
iFrame/Window Open
Запуск через `launch_url` (с CSP, `X-Frame-Options` согласованы заранее). Хартбит/refresh продлевает сессию.
Ставки и события (WebSocket)
Типы событий
Потоковые: `TABLE_STATE`, `ROUND_OPEN`, `BETS_OPEN`, `BETS_CLOSED`, `ROUND_RESULT`
Транзакционные: `BET_PLACED`, `BET_ACCEPTED/REJECTED`, `PAYOUT`
Служебные: `ERROR`, `PING/PONG`, `RECONNECT_HINT`
Пример результата:
{
"type": "ROUND_RESULT",
"table_id": "roulette_eu_07",
"round_id": "r_2025_11_02_15_23_05",
"result": { "number": 21, "color": "red" },
"payouts": [
{ "bet_id": "b_1001", "amount_minor": 360000 },
{ "bet_id": "b_1002", "amount_minor": 0 }
],
"server_ts": "2025-11-02T13:23:07Z"
}
Надежность канала
Авто-reconnect с восстановлением подписок и состояния текущего раунда.
Back-pressure: ограничение частоты клиентских сообщений.
Дедупликация по `bet_id`/`round_id` на стороне провайдера и оператора.
Денежные операции и коллбеки кошелька
Потоки
Auth-дебет (ставка): провайдер запрашивает списание/заморозку; оператор отвечает `APPROVED/DECLINED`.
Кредит (выплата): провайдер инициирует зачисление; оператор подтверждает статус и возвращает баланс.
Reconciliation: периодические отчеты по раундам/транзакциям.
Гарантии доставки
Идемпотентность через `X-Idempotency-Key`, TTL ключа ≥ 24 ч.
Повтор доставки с экспоненциальной паузой, порядковая обработка (per player).
POST /wallet/payouts
Idempotency-Key: 4f9f-...
{
"player_id": "u_57291",
"round_id": "r_2025_11_02_15_23_05",
"bet_id": "b_1001",
"amount_minor": 360000,
"currency": "EUR"
}
Настройки лобби и промо-инструменты
Каталоги столов: группировка по языкам дилера, лимитам, VIP-уровням, дисциплинам.
Промо: баннеры, турниры, миссии/квесты, события «горячих чисел», топ-выигрыши.
Фильтры гео: whitelist/blacklist юрисдикций, локальные форматы ответственной игры.
UI-параметры: авто-вход в конкретный стол, скрытие чата, пресеты ставок, кастомные номиналы.
Масштабирование и отказоустойчивость
Мульти-регион: выбор ближайшего PoP/студии, ASN-/гео-роутинг.
Балансировка: sticky по игроку/столу; при сбое — прозрачное `re-join`.
Квоты/Rate limits: лимит соединений WS, подписок и изменений ставок.
Деградация: fallback на HLS, «lite-UI» для слабых устройств.
Безопасность и комплаенс
Шифрование: TLS 1.2+, HSTS; медиа в SRTP (WebRTC).
Доступ: JWT с коротким TTL, IP allowlist для коллбеков, mutual-TLS по согласованию.
PII-минимизация: маскирование идентификаторов, логи без открытых персональных данных.
Анти-фрод: сигналы поведения (аномальная частота ставок, множественные сессии, подозрительные ASN/VPN), риск-флаги и троттлинг.
Регуляторика: поддержка механизмов самоисключения, локальных предупреждений, согласие на cookies по региону.
Мониторинг, отчетность и SLA
Что меряем
Аптайм медиа/WS, средняя задержка, % frame-drops, ошибки коллбеков.
Конверсия `Launch → First Bet`, распределение отказов по причинам.
Нагрузка по столам, средний чек, ROI промо, удержание по дисциплинам/языкам.
SLO/SLA (ориентиры)
Медиа-аптайм ≥ 99.9%, API-аптайм ≥ 99.95%.
Коллбеки: p95 < 500 мс внутри региона.
WS-ре-коннект: p95 восстановление < 3–5 с.
Дашборды/алерты
Метрики в реальном времени, корелляция `round_id/bet_id/callback_id`.
Инцидент-панель с причинами/стейкхолдерами и регламентами коммуникаций.
Тестирование и приемка
1. Sandbox: отдельные ключи, фиктивные исходы раундов, тестовые таблицы коэффициентов.
2. E2E-кейсы: успешные/отклоненные ставки, обрывы WS, повторные `PAYOUT`, конфликты лимитов.
3. Нагрузочные: пики прайм-тайма/турниров, переключение ABR, деградация до HLS.
4. Безопасность: негативные кейсы JWT, подпись коллбеков, rate-limits, CORS/CSRF-политики.
5. Reconciliation: сверка отчетов провайдера и леджера по суммам/округлениям/статусам.
Лучшие практики интеграции
Делайте кошелек оператора источником истины (SoT); все внешние транзакции — идемпотентны.
Разносите коллбеки по очередям (`bets`, `payouts`, `recon`) с приоритетами и ретраями.
Кешируйте лимиты/конфиги столов на edge с контролируемым TTL и ручной инвалидацией.
Включайте feature-flags для поэтапного открытия столов/языков/VIP-лимитов.
Планируйте fail-over: fallback протоколов, «техническая пауза», компенсационные промо-сценарии.
Логируйте хэши PII и корреляционные ключи вместо прямых идентификаторов.
Чек-листы
Для разработки
- Генерация/валидация JWT/SSO
- Клиент WebRTC + fallback HLS
- WS-клиент с авто-reconnect и back-pressure
- Идемпотентные S2S-эндпоинты, ретраи, дедупликация
- Маскирование PII, ротация ключей/секретов
Для запуска
- L10n: языки, валюты, форматы
- Гео-фильтры и ограничения юрисдикций
- SLO-мониторинг (API/Stream/WS) + алерты
- Ночные отчеты и reconciliation
- План инцидентов и статус-страницы
FAQ (кратко)
Можно ли запускать в iFrame? Да, через `launch_url` при согласованной CSP/`X-Frame-Options`.
Есть ли Bet Behind/Speed-режимы? Да, для выбранных столов — по конфигурации.
Как обрабатывать обрывы? Авто-reconnect, восстановление подписок, идемпотентные коллбеки.
Доступны турниры/миссии? Да, через встроенные промо-виджеты и события аналитики.
Как устроен reconciliation? Провайдер публикует отчеты по раундам/транзакциям; оператор сверяет с леджером по `round_id/bet_id`.
Итог
OnAir Entertainment — крепкий Live-провайдер с современным стримингом и структурированной интеграцией. Следуя описанным паттернам (SSO, WebRTC+WS, коллбеки с идемпотентностью, мониторинг SLO, RG/комплаенс), оператор получает предсказуемое подключение, устойчивую работу в пиковые часы и понятную экономику Live-вертикали.