Live-дилерлердің нақты уақыттағы стримингі қалай жұмыс істейді
1) «Нақты» шындық не үшін қажет?
Live-казино - бұл бейне өндірісі мен транзакциялық логиканың қосылысы. Барлық құндылық - синхрондылықта: ойыншы дилерді көреді, «Қоюды» басады, бэкенд мөлшерлемені «No more bets» дейін белгілейді және нәтиже ашық есептеледі. Кез келген қайта синхрондау (бейне кідірісі, «кеш» ставка) VOID-ге, дауға немесе сенімнің жоғалуына ауыстырылады.
2) Студиядан ойыншыға дейінгі контур
Студия → Ингест → Оркестратор → Жеткізу → Плеер
1. Студия: 1080p/60 (немесе 4K/60) камералары, микрофондар, жарық, микшер, кейер оверлейлер (таймерлер/кеңестер).
2. Ингест: SDI/NDI → энкодер (h. 264/h. 265, Opus/AAC) → SRT/RTMP қабылдауға.
3. Процессинг: оверлей композициясы, архив жазбасы, CV/RFID оқиғалары, timecode синхрондау.
4. Транскод: желі/құрылғы профильдері (1080p/720p/480p), GOP 0. 5-1 с.
5. Тарату:- WebRTC - негізгі төмен патентті тракт (p95 150-500 мс), LL-HLS/DASH - фолбэк (2-5 с), DataChannel/WebSocket - ставка/таймер сигналдары.
- 6. Player: server time (UTC) жүйесімен үндестірілген, таймерді жазып, шешім қабылдайды.
3) Хаттамалар: қайсысы орынды
WebRTC: ең жылдам шолғыш/ұялы телефондар, UDP, congestion control, екі бағытты DataChannel.
SRT: студиядан тұрақты ингест (ARQ, шифрлау), head-end дейін джиттер/шығындарға қарсы жақсы.
LL-HLS/DASH: жаппай фолбэк/CTV, сегменттер 1-2 с, жиі partial-updates; кідіріс жоғары, бірақ масштабы арзан.
RTMP: клиенттік жеткізу ретінде емес, сыйысымдылық (ингест) үшін «өткен ғасыр» ретінде ғана.
4) Раундтар мен мөлшерлемелерді синхрондау
Ақиқат - серверлік уақыт. Клиент мезгіл-мезгіл үндестіріледі (NTP-ұқсас пингтер) және local-offset түзетеді.
Өмірлік цикл:1. `round. open '- мөлшерлемелер терезесі белсендірілген (мысалы, 15 с).
2. `round. close '- сервер мөлшерлемелерді қабылдамайды, UI бұғатталады.
3. `round. result '- CV/RFID/оператордың нәтижесі.
4. `round. settle '- әмияндағы төлемдер/есептен шығару.
Инварианттар: серверлік мерзім клиентке қарағанда қатаңырақ. Егер желі тұрса, «гонгтан кейін» қабылдауға қарағанда, мөлшерлемені қабылдамаған дұрыс.
5) Дата-арналар және API
Сигналдар (реал-тайм): DataChannel/WebSocket - үстелдер мәртебесі, таймерлер, ставкаларды растау.
Транзакциялар (ақшалай): теңсіздігі бар ('X-Idempotency-Key') және HMAC-қолтаңбасы бар REST/gRPC.
Телеметрия QoS: RTT, packet loss, bitrate, dropped frames, latency 'bet. accept`.
'round мысалы. close`:json
{
"event": "round. close", "tableId": "evo_blackjack_23", "roundId": "R-2025-10-17T14:23:10Z-evo-23", "ts": "2025-10-17T14:23:12. 000Z", "serverTime": "2025-10-17T14:23:12. 000Z"
}
Ставканы орналастыру мысалы (идемпотенттік):
http
POST /live/bet/place
X-Idempotency-Key: 9a7f-2b1c
Content-Type: application/json
{
"playerId":"p_123", "tableId":"evo_blackjack_23", "roundId":"R-2025-10-17T14:23:10Z-evo-23", "selections":[{"market":"player","amount":"10. 00"}], "currency":"EUR"
}
6) Таймингтер және кідірістер бюджеттері (мақсатты)
Click → 'hold' әмияндағы: p95 ≤ 150-250 мс.
`round. close '→ қабылдауды тоқтату: серверде 50 мс ≤ + UI жылдам бұғаттау.
'result' → 'settle': p95 ≤ 1-2 с (CV/RFID тексеруді қоса алғанда).
Бейне кідіріс: WebRTC p95 ≤ 500 мс; LL-HLS ≤ 5 с.
Сигналдар: аймақтағы p95 ≤ 150 мс дата-арна.
7) Масштабтау және edge-сәулет
Edge-SFU/WebRTC өңірлер бойынша тораптар (EU/UK/CA/LA/SEA) - ойыншыға жақын.
Geo-routing (Anycast/DNS) және QoS (RTT/PLR) бойынша health-сынамалар.
Жазылушылар саны, битрейт және тозу сигналдары бойынша Autoscaling.
LL-HLS үшін Origin-shield (шетіндегі плейлистердің/сегменттердің кэші).
Профильдер пулдары: желілік (UDP-оңтайландырылған), CPU-heavy (транскод), memory-heavy (буферлеу).
8) Бейнесигнал мен оверлейлерді өңдеу
Сервердегі оверлей (композит): әрқашан бейнемен сәйкес келеді, бірақ транскодтан қымбат.
Клиенттегі оверлей (HTML/CSS/Canvas): арзан, икемді; сол server time және оқиғалар маркерлерінің болуы өте қиын.
Ұсыным: таймерлер/» No more bets» - клиенттегі оверлей, бірақ бэкендегі« қатал »серверлік мерзімі бар.
9) Сапа (QoS) және бақылау
Тех-SLO: WebRTC RTT, packet loss, bitrate, server-client time, rate 'bet айырмашылығы. reject`, `VOID/REFUND`.
Бизнес SLO: сессияны ұстап тұру, aborted rounds, шағымдар, CR lobby → game.
Дашбордтар: end-to-end trace ('traceId': ойнатқыш → API → әмиян → провайдер → вебхук), гео/байланыс операторлары бойынша QoS карталары.
Алерталар: 'VOID' өрісі, RTT өсуі> 300 мс, packet loss> 5%, 'bet өсуі. reject` > 0. 2%.
10) Қауіпсіздік және адалдық
Сервистер/провайдерлер арасындағы mTLS, веб-хаттарда HMAC.
Anti-replay: `X-Request-Timestamp/Nonce`, окно ±300 с.
'bet. place ',' payout. ', PSP вебхукінде.
Раундтардың адалдығы: студиялық бейнені, CV/RFID белгілерін және аудит/дауларға арналған WORM қоймасында дилердің басуларын жазу.
CSP/Referrer-Policy Player домендерінде; қысқа TTL қатынау токендері.
11) Жұмыс CV/RFID және «ақиқат көзі»
RFID: фишкалар/рулетка ұяшықтары/ставка алаңдары.
CV: карта/шарларды тану, дилердің қолын трекинг.
Elections: егер сенсор CV-мен дауласса - саясат бойынша басымдық (әдетте RFID → CV → қолмен енгізу), барлық шешімдер - журналға.
12) Фолбэктер және тозулар
WebRTC деградацияланды → LL-HLS, UI алдын ала мөлшерлеме терезесін азайтады (мысалы, 1-2 с).
CV/RFID қол жетімді емес → екі рет тексеру нәтижесін қолмен енгізу; күмәнданған кезде - VOID.
Edge торабы артық жүктелген → DNS/Anycast бойынша жедел ребаланс; ақылы үстелдерді/өңірлерді басымдыққа алу.
13) Комплаенс және RG
Geo-fencing: ел бойынша үстелдердің/провайдерлердің қолжетімділігі.
Жергілікті тілдегі заңды/жастық оверлейлер.
RG-саясаты: тәуекел-паттерндер кезінде жұмсақ кеңестер/тайм-ауттар; ставкалар/сессиялар лимиттері.
PII-оқшаулау: ойнатқыш PII-ні бермейді, тек 'playerId' бүркеншігі.
14) DR/HA: «қара экранға» рұқсатсыз
Multi-AZ студиясы немесе резервтік алаң; энкодерлер/желілер.
Раунд сигналдарын (оркестратор/CV) тәуелсіз тұрақтарға екі рет жазу.
VOID/REFUND жоспары коммуникация үлгілерімен және таймингтермен.
Тұрақты оқу-жаттығулар: AZ өшіру, желінің тозуы, CV жоғалуы.
15) Қарсы үлгілер
Шындық ретінде client time-ға сүйену.
WebRTC проблемалары кезінде LL-HLS фолбэк → «қара экран» жоқ.
Талдаманы ALTP әмиянға салу → жасырындылық жарқылдауы және 'reject _ rate'.
Ақшада/вебхуктарда теңсіздіктің және HMAC-тың болмауы.
«Тыныш» assets/overley нұсқасыз ауыстыру (сынған клиенттер).
DataChannel/WebSocket (флуд/DoS чат) үшін нөлдік лимиттер.
WORM мұрағатының жоқтығы: адалдықты дәлелдейтін ештеңе жоқ.
16) Live-стримді іске қосу шот-парағы
Студия/ингест
- Камера/энкодерлер, UPS; Шифрланған SRT-ингест.
- CV/RFID калибрленген, дилердің басқышы үндестірілген.
Медиастек
- WebRTC p95 ≤ 500 мс, LL-HLS теңшелген (сегмент ≤ 2 c, preload hints).
- 1080/720/480, GOP ≤ 1 c профильдері, Opus/AAC аудио.
Қадамдастыру/ойын
- Клиентке Server time, 'round. close 'тексерілді.
- Таймерлер - клиенттің overley + «қатты» серверлік тоқта сияқты.
Қаржы/қауіпсіздік
- Ақша/вебхуктардың ұқсастығы, HMAC + mTLS, anti-replay.
- WORM-дегі раундтар мен бейнелер журналы; PITR әмиян.
Бақылау мүмкіндігі
- QoS-дашбордтар (RTT/PLR/bitrate), 'bet. reject`, `VOID`, `settle p95`.
- Таймингтердің деградациясына және дрифтіне алерттар.
DR/Операциялар
- Резервтік студия/арна, фолбэк сценарийлері және VOID/REFUND.
- Runbooks, коммуникация үлгілері, тұрақты жаттығулар.
Дилерлердің нақты live-стримі - дәл үндестірілген медиапайплайн және ақша қозғалтқышы. WebRTC жылдамдықты қамтамасыз етеді, LL-HLS - тұрақты фолбэк, SRT - сенімді ингест; дата-арналар сыни сигналдар береді, ал серверлік уақыт раундтың адалдығын цементтейді. QoS телеметриясын, демпотенттік ақшаны, қауіпсіздікті және DR қосыңыз - ойыншы табиғи, жылдам және әділ ойынды көреді, ал оператор болжамды SLO мен маржаны алады.