はじめに
Cloudflare Callsは、リアルタイムの音声、ビデオ、データをアプリケーションに追加するために使用できます。Cloudflare CallsはWebRTCを使用しており、ブラウザ、モバイル、ネイティブアプリなどの幅広いプラットフォーム間で通信するための最も低遅延な方法です。
Callsは、バックエンドおよびフロントエンドアプリケーションと統合してリアルタイム機能を追加します。
-
WebRTCのスケーリングが難しい: 多くの人がWebRTCサーバーのスケーリングに苦労しています。オペレーターは、同じ「部屋」に何人のユーザーが入れるか、または現在の高レベルAPIの概念に合わないユニークなソリューションを構築したいと考えています。
-
高い出口コスト: WebRTCは、管理されたソリューションがクラウドの出口に高いプレミアムを課すため、使用するのが高価です。また、自分のサーバーを運営する場合は、システム管理やスケーリングのオーバーヘッドが発生します。Cloudflareはすでに300以上のロケーションを持ち、一部のロケーションには1,000台以上のサーバーがあります。Cloudflare Callsは、このアーキテクチャの上に簡単にスケールし、最も低いWebRTC使用コストを提供できます。
-
WebRTCは成長している: 開発者は、WebRTCがビデオ会議だけのものではないことに気づき始めています。WebRTCは多くのプラットフォームでサポートされており、成熟していてよく理解されています。
-
意見を持たない: Cloudflare CallsはSDKを提供しません。代わりに、既存の概念に合わないユニークな問題を解決するために生のWebRTCにアクセスできるようにします。APIは意図的にシンプルです。
-
部屋がない: 他のWebRTC製品とは異なり、Cloudflare Callsは部屋のような抽象化を提供するのではなく、各トラック(音声/ビデオ/データ)を管理することを可能にします。シンプルなpub/subの上に存在するプレゼンスプロトコルを定義します。各エンドユーザーは、希望する音声/ビデオ/データトラックを公開および購読できます。
-
ロックインがない: Cloudflare Callsを使用して、SFUのスケーラビリティの問題を解決できます。ピアツーピアアーキテクチャと組み合わせて使用することもできます。Cloudflare Callsを単独で使用することも可能です。Cloudflare Callsをどの程度使用するかはあなた次第です。
-
SFU: Callsは、特定のデータを購読するクライアントにメディアデータを転送するのが得意な特別なpub/subサーバーです。各クライアントはWebRTCを介してCloudflare Callsに接続し、データを送信、受信、またはその両方を行います。これには音声/ビデオトラックまたはDataChannelsが含まれます。
-
スケールする: すべてのCloudflareサーバーは単一のサーバーとして機能するため、数百万のWebRTCクライアントがCloudflare Callsに接続できます。各クライアントは、他のクライアントとデータを送信、受信、またはその両方を行うことができます。
-
CloudflareダッシュボードからCallsアプリを作成する際にダウンロードできるエコーの例から始めてください。またはdemosからも入手できます。これにより、音声とビデオの送受信方法が示されます。
-
セッションおよびトラックIDを渡すことで、誰がどのメディアを受信できるかを操作する方法を理解してください。あなたが誰にどのメディアを受信させるかを制御します。各メディアトラックはユニークなIDで表されます。このIDを保存し、配布するのはあなたの責任です。
- Cloudflare Callsへの各接続と各接続によって作成されたトラックIDを管理するアプリを作成します。トラックを保存および共有するために任意のツールを使用できます。demosの例アプリをチェックしてください。たとえば、Orange Meets ↗は、トラックIDを管理するためにWorkers Durable Objectsを使用する本格的なビデオ会議アプリです。