メインコンテンツへスキップ
ChainStream は強力なリアルタイムデータストリーミング機能を提供し、開発者がオンチェーンイベント、トランザクション、状態変更を即座に受信できるようにします。このドキュメントでは、WebSocket 接続、サブスクリプションメカニズム、ベストプラクティスについて説明します。

接続

WebSocket エンドポイント

認証

接続確立時に URL で Access Token を提供します:
SDK は接続と認証を自動的に処理します。subscribe メソッドを呼び出すだけです:
SDK は接続状態を自動検出し、必要に応じて接続を確立します。手動で connect() を呼び出す必要はありません。

接続レスポンス

認証成功時、以下のようなレスポンスを受信します:

サブスクリプションタイプ

ChainStream WebSocket は複数のデータサブスクリプションタイプをサポートしています:
完全なサブスクリプションタイプ、パラメータ、レスポンス形式については WebSocket API リファレンスを参照してください。SDK(client.stream.subscribeTokenCandlessubscribeTokenStatssubscribeTokenTrade、…)はこれらのチャンネル文字列をラップしているため、手動で組み立てる必要はありません。

サブスクリプション形式の例

サブスクリプション解除


メッセージ形式

リクエストメッセージ

接続メッセージ(認証):
サブスクリプションメッセージ:
サブスクリプション解除メッセージ:

レスポンスメッセージ

サブスクリプション確認:
データプッシュ:
エラーメッセージ:

ハートビート

WebSocket 接続を維持するためには、定期的なハートビートメッセージが必要です。connect レスポンスの ping フィールド(通常 25 秒)に基づいて、この間隔内にハートビートを送信してください:
指定時間内にメッセージが送信されない場合(通常は ping 間隔の 3 倍)、サーバーが接続を切断します。

完全な例


ベストプラクティス

パフォーマンス最適化

フィルターの使用

必要なデータのみサブスクライブして帯域幅を削減。CEL 式を使用してデータをフィルタリングできます。

バッチ処理

高頻度データは 1 件ずつ処理するのではなく、バッチで処理。メッセージキューをバッファとして使用してください。

ローカルキャッシュ

トークン情報などの静的データをキャッシュして、重複処理を削減。

接続の再利用

1 つの接続で複数のチャンネルをサブスクライブ可能。複数の接続の作成を避けてください。

エラー処理

  1. エラーイベントの監視 — 接続やデータのエラーを迅速に処理
  2. リトライメカニズムの実装 — 指数バックオフによる再接続
  3. ログ記録 — トラブルシューティングのために重要なイベントを記録
  4. グレースフルデグラデーション — WebSocket が利用できない場合はポーリングに切り替え

リソース管理


関連ドキュメント

WebSocket API リファレンス

完全なサブスクリプションタイプとパラメータ

価格アラートボット

ハンズオン:価格監視ボットの構築