カジノがブリッジ経由でライブプロバイダーを接続する方法
ライブカジノのコンテキストにおけるブリッジとは
Bridgeは、オペレータのプラットフォームとライブプロバイダ(Evolution、 Pragmatic Live、 Ezugi、 TVBetなど)の間のレイヤーで、API、イベント、ログ、財務計算を正規化します。簡単に言えば、ブリッジは1つのベット契約、1つのラウンドステータススキーム、単調なWebhook、レポートなど、1ダースの異なる統合を「一見」同じものにします。
なぜそれが必要なのか
数十のプロバイダのための単一の契約(少ないプラットフォームの変更)。
Idempotenceとテイクに対する保護(ネットワークリトレイ、再接続プレーヤー)。
カタログ正規化(テーブル、リミット、サイドベット、ロケール)。
シングルキャッシュデスクとリスクルール(制限、AML/KYT、 RG)。
プロバイダによるQoSストリームとSLAの監視。
コンポーネントのチェーン
1.カジノプラットフォーム(ホスト):アカウント、KYC/RG、ボーナス、ウォレット、フロント。
2.ブリッジ:プロバイダアダプタ、イベントバス、テーブル/リミットマッピング、財務会計、ロギング、Webhook。
3.ライブプロバイダー:ストリーム(通常はWebRTC/HLS)、ゲームエンジン、結果計算、ディーラー。
4.ウォレット:シームレス(オペレータが保存した残高)または転送(プロバイダからゲームバンクに入金)。
5.観測可能性:ストリームメトリック(FPS、 RTT、バッファ)、ビジネスメトリック(Bet、 GGR、 Hold)。
ネットワークプロトコルとセッション
ビデオ:- WebRTC-低遅延(100-500ミリ秒)、ICE/STUN/TURNが必要です。
- HLS/LL-HLS-より高い遅延が、より簡単なCDN。
- ベットとイベント:WebSocket/HTTP-SSE/REST。
- トークン:短命のJWT/不透明 (TTL 3-10分)、プロバイダの要求で回転。
ウォレットモデル
1)シームレス財布(推奨)
賭け/支払いは、オペレータの財布にブリッジを通過します。
長所:統一されたバランス、即刻の限界制御、簡素化されたRG。
短所:厳格な財布手頃な価格(SLA)要件。
2)転送ウォレット
プレイヤーはプロバイダーの「テーブルバンク」に資金を送金します。
長所:ピーク時にオペレータのウォレットへの負荷が少なくなります。
短所:より厳しいリターン、調整とAML制御、UXの摩擦。
セッションのライフサイクル(シームレス)
1 。/createSession→bridgeは'sessionId'を作成し、'streamUrl'、 'betSocketUrl'を返します。
2.フロントはプレイヤー(WebRTC/HLS)とイベント接続を開きます。
3.プレイヤーはbridge ('idempotencyKey'、 'roundId'、 'selection'、 'stake')でベットします。
4.Bridgeはウォレットの金額を事前に承認します→プロバイダに確認します。
5.プロバイダは"bettingClosed"→"spin/deal"→"roundResult'と宣言します。
6.Bridgeはペイアウトを計算し、off/return holdを書き込み、'transactionId'を生成します。
7.BridgeはWebhookをプラットフォームに送信します('roundId'、 'result'、 'payout'、 'balanceAfter')。
8.終了/再接続-'sessionId' (idempotent)による。
イベント契約(例)
→ブリッジレート(WS/REST):json
{
「type」: 「bet。 place」、 「idempotencyKey」: 「c0a4-77f……」、 「sessionId」: 「sess_abc123,」 roundId「:」R-2025-10-17-18:45:03-Table23, 「selection」: [{「market」: 「roulette_straight」、 「value」: 「17」}]、 「stake」:{「量」:「:」:「5」00、 ""currency":" EUR"}、 "limitsProfile":" VIP_A"
}
ブリッジ応答:
json
{
「status」: 「accepted」、 「balanceHold':」 -5。00、""betId":"bet_9f2……"、"effectiveLimits': {"maxBet": "5000。00"}
}
→プラットフォームラウンド(webhook)の結果:
json
{
"event":"round。settle「、」roundId「:」R-2025-10-17-18: 45: 03-Table23「、」bets':[
{"betId":"bet_9f2……"、" stake":" 5。00「、「payout」:」 180。00"、"結果":"WIN"}
]、「トランザクション」:[
{「id」: 「trn_bet_9f2……」、 「type」: 「DEBIT」、 「amount':」 5。00"}、{"id":"trn_pay_9f2……"、"type":"CREDIT"、"amount': "180。00"}
]、"balanceAfter":" 1320。40"
}
主なルール:
- 'idempotencyKey'のすべてのリクエスト。
- 結果の明確なタイピング:'WIN/LOSE/PUSH/VOID/RETRY'。
- 安定した識別子:'roundId'はグローバルに一意です(table+time+shard)。
カタログと制限
発見:'/providers/: id/tables'-テーブルリスト、リミット、サイドベット、言語、スケジュール。
制限プール:'DEFAULT'、 'VIP_A'、 'VIP_B'、 'Ultra'。
国/通貨/KYCステータスマッピングルール→許可されたテーブルと制限プロファイル。
ホット制限の変更:'制限'イベント。テーブルを再起動せずにupdate'。
ストリーム観測性と品質(QoS)
プレーヤー別メトリック:- ベット信号のRTT(ターゲット<150 ms WebRTC)。
- ドロップされたフレーム/バッファイベント。
- ビットレート/解像度の適応。
- ベットウィンドウのレイテンシー('bettingOpen'とベットの実際の受諾の間の時間)。
- テーブルの稼働時間、中断ラウンド、遅い和解、頻度'VOID'。
- レートクローズ後の平均決済時間。
- QoSアラート:FPSの劣化、'retry'スパイク。
コンプライアンスと安全性
KYT/AML:預金源の分析、「高リスク」フラグ→ライブベットの禁止。
RG(責任ゲーム):タイムアウト、制限、自己除外-'placeBet'の前に適用されます。
データ常駐:ロジックとPIIはオペレータによって保存されます。ブリッジはそれらのログと集計のみを格納します。
トランスポートセキュリティ:プロバイダへのmTLS/IPホワイトリスト、HMACリクエスト署名、短いTTLトークン。
監査:ledger immutable (WORM/append-only)、 'roundId'/'sessionId'によるエクスポート。
決済、調整、返品
オンザフライ決済:結果ごとに即時デビット/クレジット。
バッチ調整:プロバイダーレポート(1時間/毎日)とブリッジ元帳(P&L、コミッション)の調整。
VOID/REFUNDシナリオ:ストリームエラー、ディーラーエラー、紛争-部分的/完全なリターンと明確な原因コード。
紛争センター:サポートがすぐにチケットを解決するようにビデオ(タイムコード)を記録する↔の'roundId'の束。
パフォーマンスとフォールトトレランス
スケーリング:イベントバスとしてステートレスプロバイダアダプタ+Kafka/NATS。
ストレージ:セッション/リミット用のホット(Redis)、レジャー用のウォーム(Postgres)、ログ用のコールド(S3)。
フォールバック:ウォレットが応答しない場合-'SOFT_DECLINE'レトラ付き;プロバイダが利用できない場合-ロビーでテーブル/非表示をオフにします。
Idempotent retrays:ネットワークタイムアウトに対して'placeBet'/'settle'を繰り返すことは安全です。
UX: フロントエンドパターン
クロック同期: ブリッジからの'serverTime'を'Close betts through……。'タイマーに使用します
ローカライズ:ディーラー言語≠インターフェイス言語;用語の字幕/用語集を表示します。
ストリームプレーヤー:悪いネットワークを持つ自動フォールバックWebRTC→LL-HLS。
エラーUI:クリアコード('LBRG-401 TOKEN_EXPIRED',' LBRG-429 LIMIT_EXCEEDED''、 LBRG-503 PROVIDER_DOWN')。
マルチテーブル:セッションを壊すことなく高速スイッチテーブル('sessionId'を再利用)。
アンチパターン
クライアントに長寿命のトークンを保存します。
取引に起因する'bettingClosed'の後に入札を受け入れる-紛争が保証されます。
'idempotencyKey'→retrayの重複がない。
'roundId'とレポートのタイムゾーンをミックスします。
プロファイルとKYCステータスなしで「目で」制限を設定します。
ストリームQoSを無視-モバイルネットワーク上で高いチャーン。
ステップバイステップの実装計画(チェックリスト)
アーキテクチャと契約
- 単一のイベント契約を修正:'bet。 place'、 'bet。受け入れられた'、'賭け。'、'roundを拒否しました。'、'制限を設定します。'、'セッションを更新します。'close'、 'provider。エラー'。
- idempotencyとフォーマット'roundId'、 'betId'、 'transactionId'を定義します。
- ウォレットモデル(シームレス優先)を選択します。
安全性について
- プロバイダへのmTLS、 HMAC署名webhooks、 TTLトークン≤ 10分です。
- ポリシーRG/AML/KYT料金への入場前に、監査ログ。
カタログと制限
- テーブルとリミットプロファイルをインポートし、国/通貨/ACCでマッピングします。
- 制限とテーブルのステータスのホットアップデート。
フロントエンド
- LL-HLSフォールバック、同期クロック、安定したベットタイマーを備えたWebRTCプレーヤー。
- エラーコードと人間が読めるメッセージ。
テストプラン
- 高レイテンシ/パケット損失スクリプト、入札を失うことなく再接続。
- 入札→1つのデビット(idempotency)をダブルクリックします。
- 無効/払い戻し、紛争ラウンド、レポートの不一致。
観測可能性
- QoS: RTT、ドロップフレーム、中断ラウンド、決着時間。
- SLAプロバイダによるアラート、レポートの調整。
Bridgeは、ライブインテグレーション動物園をマネージドシステムに変えます。均一なレート、均一な計算、予測可能なUX、透明なストリーム品質管理です。適切に設計されたブリッジにより、オペレータは新しいライブプロバイダをより迅速に接続し、技術的リスクを低減し、独自性、厳格な限界、明確な観測性によってP&Lを保護します。