WebSocketでPinnacleのrawフレームを受け取る(Pro)
回答: Pro(およびEnterprise)では、subscribe に "format":"raw" を追加します。PinnFeedは正規化された snapshot/delta の代わりに raw フレームを送ります。中身はPinnacleが公開しているままの試合・マーケットのレコードで、小さなPinnFeedのエンベロープに入っています。rawフレームはスポーツのみでフィルタされます。リーグ・イベント・マーケット・main は効かず、購読時のスナップショットもなく、fair・fairProb・margin も付きません。Builderで同じリクエストを送ると、コード plan_lacks_raw の error フレームが返ります。
Subscribe#
{"type":"subscribe","sports":["soccer","tennis"],"format":"raw"}
サーバーは "format":"raw" 付きの subscribed で応答します。いつもどおり約20秒ごとの {"type":"ping"} に {"type":"pong"} で答えてください。60秒のpongタイムアウトと 4008 slow_consumer(バッファが16 MB超)は同じです。rawは通常、正規化より重いです。
フレームの形式#
{"type":"raw","seq":1842,"ts":1794217196688,"sportId":29,"sport":"soccer","channel":"live","kind":"matchup","action":"upsert","eventId":1640275337,"data":{"id":1640275337,"league":{},"participants":[],"markets":[]}}
| フィールド | 意味 |
|---|---|
type | 常に raw。 |
seq | このサーバーでのrawフレームの増加カウンタ。 |
ts | PinnFeedがフレームを送った時刻(エポックからのミリ秒)。 |
sportId、sport | PinnacleのスポーツIDとPinnFeedのスポーツ名。 |
channel | live または prematch。 |
kind | matchup(1イベント)、matchups(イベントのリスト)、markets(1イベントの全マーケット)、snapshot(フィード(再)開始時の、マーケット付き全イベントのリスト)。 |
action | upsert、remove(data は {"id":…} のみ)、replace(そのイベントまたはスポーツについて保持している内容をリストで置き換え)。 |
eventId | 対象のイベント(matchup と markets)。 |
part、final | 分割送信される大きな markets リストのみ。final: true のパートが届いたらリストを適用します。 |
data | 正規化していないPinnacleのレコード。アメリカン形式のオッズ、Pinnacleのフィールド名。 |
正規化とrawの比較#
| 正規化(すべてのWSプラン) | raw(Pro、Enterprise) | |
|---|---|---|
| スキーマ | 文書化された PinnFeed v1(schema) | PinnFeedのエンベロープ+Pinnacle自身のレコード(Pinnacleのフィールド) |
| フィルタ | sports, leagues, events, markets, live, main, specials | sportsのみ |
| 購読時のsnapshot | あり(snapshot:false でオプトアウト) | なし |
| fair oddsとmargin | 含まれる | 付与されない |
| 典型用途 | アプリ、ボット、ダッシュボード | 自前の正規化処理、アーカイブ、デバッグ |
ほとんどのプロジェクトは正規化フレームのままにしてください。rawを選ぶのは、Pinnacleのレコード形式の上に自前の正規化処理を作りたい場合や、レコードをアーカイブしたい場合だけです。
プラン#
Proは月額199ユーロ(WebSocket 10接続、REST 30 req/s)。Builder(月額99ユーロ)は正規化フレームで3接続です。3日間のトライアルがあり、カード登録が必要で、解約しない場合は3日目の後に課金されます。料金 · WebSocketドキュメント。
18歳以上の方を対象とした教育目的のコンテンツです。予想や利益の約束ではありません。日本では刑法により賭博は原則として禁止されています。
関連:snapshotとdelta · Nodeでのsnapshot/delta Map。
よくある質問#
1本の接続でrawと正規化を混ぜられますか?#
いいえ。形式は接続ごとです。もう一方の形式には別接続を開いてください。
rawの方が速いですか?#
正規化をスキップしますが、PinnFeedはどちらの形式についてもレイテンシ数値を公開していません。自分側で計測してください。
rawフレームはドキュメント化されていますか?#
上のエンベロープはPinnFeed v1プロトコルの一部です。data の中のレコードはPinnacle自身の形式に従い、PinnFeedはそれをバージョン管理しません。安定したスキーマが必要なら正規化フレームを使ってください。