Canlı oyunları platforma bağlamak için API nasıl çalışır
1) Ortak mimari ve bileşen rolleri
Operatör Platformu (Casino Platformu): hesaplar, cüzdan, bonus motoru, limitler, KYC/AML, işlem günlüğü.
Canlı oyun sağlayıcısı (Stüdyo/Sağlayıcı): stüdyolar, bayiler, video akışları (WebRTC/Düşük Gecikmeli HLS), oyun sunucusu turları.
Toplayıcı (bazen): düzinelerce sağlayıcı için tek bir API, para birimlerinin/sınırların/olayların birleştirilmesi.
Müşteri frontend: web/mobil istemci ile bahis UI, video oynatıcı, sohbet, yerel istemleri.
Yardımcı hizmetler: Risk/Anti-dolandırıcılık, kayıt, analitik, mesaj kuyrukları (Kafka/RabbitMQ), izleme.
Tipik topoloji: - istemci (JWT) - platform (sunucudan sunucuya) - sağlayıcı, paralel olarak, istemci CDN/medya sunucu havuzundan bir video akışı alır.
2) Oyuncu yaşam döngüsü ve oturumları
2. 1. Giriş ve "oyun belirteci"
1. Oyuncu platforma giriş yapar.
2. Platform, sağlayıcıdan (S2S) CreateGameSession'ı çağırır, 'player _ id', 'currency', 'country', 'bet _ limits', sorumlu oyunun bayraklarını iletir.
3. Sağlayıcı bir kerelik game_token ve launch_url döndürür.
4. İstemci, bir iframe/yeni sekmede 'launch _ url'yi açar ve' game _ token 'ekler (veya oyunun son URL'sine 302 alır).
Bir S2S isteği örneği:http
POST/api/v1/sessions
İçerik Türü: uygulama/json
Yetkilendirme: Taşıyıcı <platform_api_key>
{
"player_id":'u-918273", "session_id":" sess-5f3b2 "," para birimi ":" EUR "," ülke ":" DE "," lang ":'de", "bet_limits": {'min": 0. 5, "maks": 2000}, "responsible_gaming": {"self _ excluded": false, "deposit_limit_left": 150} ", callback_urls": {
"balance": "https ://platform. örnek. com/wallet/balance," "debit": "https ://platform. örnek. com/wallet/debit," "kredi": "https ://platform. örnek. com/wallet/credit," "rollback ": "https ://platform. örnek. com/wallet/rollback," "events": "https ://platform. örnek. com/oyun/etkinlikler"
}
}
Sağlayıcı yanıtı:
Json
{
"game_token": "gtkn_7f0...e2a," "launch_url": "https ://live. sağlayıcı. com/launch/rulet," "expires_in": 900
}
2. 2. Ön tarafta kimlik doğrulama
Oyun yüklenir, 'game _ token'ı arka ucundan doğrular.
WebSocket, bahisler/etkinlikler için oyun sunucusuna yüklenir.
Video akışı WebRTC üzerinden çalışır (düşük gecikme süresi 0. 5-2 s) veya LL-HLS (2-5 s).
3) Para ve bahisler: Cüzdan API ve idempotence
3. 1. Bakiye ve borç/kredi
Sağlayıcı, oyuncunun "parasını" saklamaz - Platform Cüzdan API'sini çağırır:- 'GET/cüzdan/bakiye? player_id' ^ mevcut.
- 'POST/cüzdan/debit' - bahsi yazın.
- 'POST/cüzdan/kredi' - kredi kazançları/iadeleri.
- 'POST/wallet/rollback' - Bir tur iptal edildiğinde bir işlemi geri almak.
Önemli: Tüm parasal işlemler 'transaction _ id'/' round _ id'dir. Aynı sorguyu tekrarlamak sonucu değiştirmez.
Debit örneği (oran):http
POST/cüzdan/debit
Idempotency-Key: trx-7a2df-001
İçerik Türü: uygulama/json
{
"player_id":'u-918273", "round_id":" r-2025-10-18-12:30:15Z-001, "transaction_id":" trx-7a2df-001 "," miktar ": 25. 00, "currency": "EUR", "bet_type": "roulette_straight," "meta": {"table _ id":" ru-11", "selection":" 17", "odds": 35}
}
3. 2. Zamanlamalar ve bahis durumları
WINDOW_OPEN WINDOW_CLOSING WINDOW_CLOSED. 'WINDOW _ CLOSED'dan sonra, sağlayıcı yeni borçları yasaklar.
Geç gelen teklifler 'LATE _ BET' koduyla reddedilir.
Bağlantı kesilirse, istemci bahsi yeniden gönderebilir - sunucu, kopyayı Idempotency-Key ile ayırt edebilmelidir.
İşlem durumları: 'PENDING', 'SETTLED', 'ROLLED _ BACK', 'REJECTED'.
4) Yuvarlak Olaylar: Model ve Sipariş
4. 1. WebSocket Olay Şeması
'round. Başladı '-' round _ id 'geliyor, bahis zamanlayıcısı.
'bet. Kabul edildi/reddedildi '- her teklif için onay.
'round. Kapalı bahisler artık kabul edilmemektedir.
'round. Sonuç '- sonuç (rulet/kart/kemik sektörü).
'pout. created '- oyuncu tarafından kazanılan miktar.
'round. Yerleşmiş '- son durum, sağlama toplamı.
Bir sonuç olayı örneği:Json
{
"type": "yuvarlak. Sonuç, "" round_id": "" r-2025-10-18-12:30:15Z-001, "" table_id": "ru-11", "yük": {
"rulet": {"sayı": 17, "renk":'siyah "}," hash ":" sha256: 8a7b... d1c "," video_ts": "2025-10-18T12:30:23. "450Z"
}
}
4. 2. Tutarlılık ve sağlama toplamları
Her olay 'seq've' signature '(istek gövdesinin mTLS + imzası) ile birlikte verilir.
Mutabakat için 'payout _ checksum' belirtilmiştir - tüm 'round _ id' kredilerinin toplamı birleşmelidir.
5) Video akışı ve gecikme süresi
Canlı el bahisleri için WebRTC (blackjack/baccarat/rulet) - sıkı gecikme bütçesi <2 s müşteriye.
Görüntüleyiciler/ölçek için LL-HLS/DASH, 2-5 c sağlar.
Zaman senkronizasyonu: NTP/chrony, yükte - tekrarlar ve anlaşmazlıklar için 'video _ ts'.
Folback: WebRTC bozulduğunda, geç bahisleri bloke ederek LL-HLS'ye otomatik geçiş yapın.
6) Hatalar, Retras, Zaman Aşımları
Genel kurallar:- 800-1500 ms zaman aşımına sahip tüm S2S çağrıları, üstel duraklama ve Jitter ile yeniden çalışır, ancak parayı yeniden borçlandırmaz (idempotency).
- 'YETERSIZ _ FUNDS', 'LIMIT _ EXCEEDED', 'ACCOUNT _ LOCKED', 'DUPLICATE _ TRANSACTION', 'LATE _ BET', 'CURRENCY _ MISMATCH'.
Json
{
"hata": "INSUFFICIENT_FUNDS," "mesaj": "Denge 18. 00 <gerekli 25. 00," "transaction_id": "trx-7a2df-001"
}
7) Bonuslar, freespinler, sigorta
8) Sorumlu oyun ve sınırlamalar
Oturum bayrakları: 'self _ excluded', 'cooldown _ until', 'loss _ limit _ left', 'time _ limit _ left'.
Sağlayıcı her borçtan önce 'validate _ limits' isteyebilir.
Platform force_close_session başlatabilir: oyuncu hariç tutulur/sınırı aşar - sağlayıcı bahis penceresini kapatır ve oynanmamış bahislerde geri dönüş yapar.
9) Güvenlik ve uyumluluk
S2S için mTLS, HSTS, sıkı IP-allowlist.
Ön uç belirteçleri, kitle/ihraççı doğrulaması için kısa TTL ile JWT/JWS.
Sağlayıcının web kitaplarının imzası (HMAC-SHA256 gövdenin üzerinde).
Bayi etkinlik günlükleri, yuvarlak tekrarlar, değişmez denetim (WORM depolama).
Kişisel verilerin depolanması - PII minimizasyonu, 'player _ id' tokenizasyonu, yargı tutma süreleri (GDPR ve analogları).
Coğrafi engelleme ve CreateGameSession düzeyinde yargı tarafından yasaklar.
10) Uzlaşma ve Finans
10. 1. Saatlik/günlük raporlar
Sağlayıcı 'round _ id _ total_bets, total_wins, ücretler' hakkında bir rapor verir. Platform birleştirir:- Debits = Σ bahis, Credits = Σ kazanç + getiri, Delta = GGR (bonuslar/ikramiyeler/komisyonlar dahil).
Json
{
"tarih": "2025-10-18", "para birimi": "EUR", "tablolar": [{
"table_id": "ru-11", "mermi": 1260 ", total_bets": "45230. 00", "total_payouts": "43012. 50", "jackpot_contrib": "302. 00," "provider_fee": "2. 5%"
}]
}
10. 2. Geri alma senaryoları
Video/Storyboard - tur başarısız oldu. İptal edildi: sağlayıcı, turdaki tüm bahislere bir "geri alma" gönderir.
Çift bankamatik işlemi platformda yakalandı - 'DUPLICATE _ TRANSACTION've 200 Aynı sonuçla tamam.
11) Sohbet, moderasyon ve UI etkinlikleri
Sohbet etkinlikleri, duraklama filtreleri olan ayrı bir kanaldan (WebSocket # 2) geçer.
Sistem duyuruları (yakın bahisler, kazanan listesi) - yalnızca güvenilir bir sağlayıcı kaynağından, imzalı/zaman damgalı.
12) Test ve sertifikasyon
Sandbox sağlayıcısı: sabit sonuçlar, force 'round yeteneği. Sonuç '.
QA kontur: kesilmiş bahis pencereleri (5-8 c) ve hızlandırılmış akış ile test tablosu.
Yük: 5-10 bin eşzamanlı oyuncunun simülasyonu, saniyede en yüksek debit (TPS) ≥ 1 × planlanıyor. 5.
Entegrasyon sertifikası: idempotency, para birimleri, yuvarlama, işlem kesintileri, sınırlara uyum ve kendi kendini dışlama için kontrol listeleri.
13) Metrikler ve SLO
Bunlar: 'debit/kredi' için medyan/95p gecikme, WebSocket gidiş-dönüş, zaman senkronizasyonu hatası, drop-rate WebRTC.
Продукт: bahis kabul oranı, geç bahis oranı, anlaşmazlık oranı, geri ödeme oranı, oturum süresi, tutma, ARPU/LTV.
SLO örnekleri:99. %5 'debit' ≤ 1. 2 s, 99. %9 teslimat 'round. Sonuç ≤ Sabitlemeden sonra 300 ms, Video gecikmesi ≤ 2. 95p WebRTC için 5 s.
14) Çok para birimi, vergiler, yerelleştirme
Dönüşüm - sağlayıcı dışında: oyun kesinlikle oturum para biriminde çalışır.
Vergiler/kesintiler - 'kredi'ile platform tarafında (alan' stopaj ').
Yerelleştirme: 'lang', sayı/para birimi biçimi, zamanlayıcılar ve raporlar için saat dilimi.
15) Entegrasyon seçenekleri
1. Doğrudan Sağlayıcıya: maksimum kontrol ve özellik, ancak ayrı sözleşmeler/sertifikalar.
2. Toplayıcı aracılığıyla: sağlayıcılar tarafından hızlı kapsama, birleşik şemalar, bazen daha az esneklik.
3. Hibrit: üst tablolar doğrudan, geri kalanı bir toplayıcı aracılığıyla.
16) Mini spesifikasyon (toplam)
16. 1. WebSocket gelen (istemciden sağlayıcıya)
Json
{"type ":" bet. yer," "bahis": {
"Miktar": 25, "seçim":" 17", "table_id":"ru-11"
}, "idempotency_key":"c3a2-...-001"}
16. 2. WebSocket giden (istemciye sağlayıcı)
Json
{"type ":" bet. Kabul edildi," "bet_id":"b-8821," "seq ": 12031}
{"type ":" round. Kapalı, "round_id":"r-...001," "seq": 12050}
{"type ":" round. Sonuç, "" sonuç ": {" sayı ": 17," renk ":'siyah"}, "seq": 12070}
{"type ":" ödeme. Oluşturulan", "miktar": 875, "para birimi":" EUR", "seq ": 12075}
16. 3. Cüzdan S2S (platform ↔ sağlayıcı)
'POST/cüzdan/debit' (idempotent)- 'POST/cüzdan/kredi' (idempotent)
- 'POST/cüzdan/geri alma' (idempotent)
HMAC imzası, 'Zaman damgası', 'Nonce', tekrar koruma (TTL ≤ 60 c).
17) Kenar vakaları ve bunların nasıl kapatılacağı
Oyuncu bağlantısının kesilmesi: bahis gönderildi, onay yok - aynı 'Idempotency-Key'ile tekrarlayın; Sunucu aynı durumla yanıt verecektir.
Turda bayi/güverte değişikliği: otomatik iptal ve tam 'geri alma'.
Para birimi uyumsuzluğu: 'CURRENCY _ MISMATCH' + olay günlüğü; Oturum yeniden yayınlanana kadar oyun engellenir.
Oyun sırasında kendini dışlama: Anında 'force _ close _ session', oynanmamış olarak geri döner.
Video kalitesinde değişiklik: yalnızca istemci, zamanlayıcılar/bahisler üzerinde etkisi yoktur.
WebSocket yeniden el sıkışma: sipariş kaybı olmadan - 'seq'ile olayların kuyruğu, "catching up" cevapsız.
18) Üretim başlatma kontrol listesi
Güvenlik
- mTLS + sabitleme sertifikası, IP-allowlist.
- Tüm webhook'ları imzalayın ve 'Timestamp'/' Nonce' seçeneğini işaretleyin.
- Mini-PII: sadece 'player _ id' (tokenize).
Güvenilirlik
- Tüm parasal işlemlerin kimliği.
- Yuvarlak tekrarlar ve değiştirilemez denetim.
- WebRTC - LL-HLS otomatik folback.
Ürün
- Sınırlar/sorumlu oyun gerçek zamanlı olarak uygulanır.
- Bahis sırasında yerel istemler.
- Gösterge Tabloları SLO + 7/24 uyarır.
Canlı oyun entegrasyonu API'si, düşük gecikmeli akış, olay yolu ve mesaj sırası, zamanlamalar ve güvenlik için katı gereksinimleri olan idempotent cüzdan paketidir. Başarılı uygulama şunlara dayanır: sıkı bir bahis ve tur yaşam döngüsü, doğrulanabilir tutarlılık (uzlaşma), veri koruma ve sorumlu oyun limitleri - ve "güzel yayını" güvenilir, sertifikalı bir finansal ürüne dönüştürür.