コンテンツにスキップ

セッションとトラック

Cloudflare Callsは、リアルタイム体験を構築するためのシンプルでありながら強力なフレームワークを提供します。このシステムの中心には、アプリケーションセッション、およびトラックという3つの重要な概念があります。これらの概念を理解することは、Callsを使用する上で重要です。

アプリケーション

Callsアプリケーションは、異なるセッションとトラックが相互作用できる環境です。これには、プロダクション、ステージング、またはセッションとトラックの分離を希望する異なる環境が含まれます。Cloudflare Callsの使用状況は、アプリケーション、セッション、またはトラックレベルで照会できます。

セッション

Cloudflare Callsにおけるセッションは、WebRTC PeerConnectionに直接関連しています。これは、クライアントと最寄りのCloudflareデータセンターとの間に通信チャネルが確立されることを表します。これはCloudflareのAnycastルーティングによって決定されます。通常、クライアントは単一のセッションを維持し、クライアントとCloudflare間のすべての通信を含みます。

  • PeerConnectionとの1対1のマッピング: 各セッションはWebRTC PeerConnectionの直接的な表現であり、リアルタイムメディアデータの転送を促進します。
  • Anycastルーティング: クライアントは最も近いCloudflareデータセンターに接続し、レイテンシとパフォーマンスを最適化します。
  • 統一された通信チャネル: 単一のセッションは、クライアントとCloudflare間のすべてのタイプの通信を処理でき、データフローをスムーズにします。

トラック

セッション内には、1つ以上のトラックが存在することがあります。

  • トラックはMediaStreamTrackにマッピングされる: トラックはMediaStreamTrackの概念に沿っており、音声、ビデオ、またはデータの送信を促進します。
  • グローバルにユニークなID: トラックをCloudflareにプッシュすると、ユニークなIDが割り当てられ、これを使用して他のセッションにトラックを引き込むことができます。
  • グローバルに利用可能: トラックをプッシュおよびプルする能力は、Callsがリアルタイムアプリケーションにとって多用途なツールである理由の中心です。各トラックは、アプリ内の任意のセッションから取得可能です。

プログラム可能な「スイッチボード」としてのCalls

スイッチボードのアナロジーは、Callsを理解するのに適しています。歴史的に、スイッチボードオペレーターはジャックを手動で接続して通話を接続していました。同様に、Callsはメディアストリームの動的ルーティングを可能にし、現代のリアルタイム通信のためのプログラム可能なスイッチボードとして機能します。

「ルーム」、「ユーザー」、および「参加者」を超えて

多くのSFUは、ユーザー間のメディアストリームを管理するために「ルーム」のような概念を利用していますが、このアプローチにはスケーラビリティと柔軟性の制限があります。Cloudflare Callsは、セッションとトラックを使用したより詳細で柔軟なモデルを選択し、幅広いユースケースを可能にします。

  • 数千人の参加者との「ファイヤーサイドチャット」のような大規模なリモートイベント。
  • 観客メンバーを「ステージ」に引き上げる能力を持つインタラクティブな会話。
  • 講師が複数のバーチャル教室に同時にプレゼンテーションできる教育アプリケーション。

プレゼンスプロトコルとメディアフロー

Callsはプレゼンスプロトコルとメディアフローを区別し、リアルタイムアプリケーションにおけるスケーラビリティと柔軟性を可能にします。この分離により、開発者は親密な通話から大規模で低レイテンシの放送まで、カスタマイズされた体験を作成できます。