制限、タイムアウト、およびクォータ
Cloudflare Callsの制限とタイムアウトを理解することは、アプリケーションのパフォーマンスと信頼性を最適化するために重要です。このセクションでは、Cloudflare Callsをアプリに統合する際に知っておくべき主要な制約と動作について説明します。
- 各アカウントは、Cloudflareからクライアントへのデータ転送が1,000GB/月まで無料で提供されます。
- クライアントからCloudflareへのデータ転送は常に無料です。
-
セッションあたりのAPIコール: 各セッションで1秒あたり最大50回のAPIコールを行うことができます。アプリ単位のレート制限はなく、セッション単位での制限のみです。
-
APIコールあたりのトラック数: 1回のAPIコールで最大64トラックを追加できます。セッションにさらにトラックを追加する必要がある場合は、複数のAPIコールに分散させる必要があります。
-
セッションあたりのトラック数: セッションに含まれるトラックの数に上限はありませんが、実際の制限はCloudflareとの接続の帯域幅によって決まります。
- トラックタイムアウト: トラックは、Cloudflareからメディアパケットが受信されない状態が30秒続くと自動的にタイムアウトし、ガーベジコレクションされます。このメカニズムは、リソースの効率的な使用と、トラックを使用するすべてのセッションのクリーンさを確保します。
- セッション状態: セッションに対する任意の操作(例:トラックのプルまたはプッシュ)を行うには、PeerConnectionの状態が
connectedである必要があります。この状態を待つために最大5秒間操作がブロックされ、その後タイムアウトします。これにより、アクティブで実行可能なセッションのみがメディア伝送に関与することが保証されます。
- インターネット接続の考慮事項: クライアントとCloudflare間のインターネット接続の喪失の可能性は、対処すべき運用上の現実です。セッションの継続性を維持するために、検出と再接続の戦略を実装することが推奨されます。これには、接続状態を監視するためにバックエンドサーバーへの定期的な「ハートビート」信号を送信することが含まれる場合があります。接続の問題を検出した場合は、自動的に再接続を試みて新しいセッションを確立することが推奨されます。セッションとトラックは、タイムアウトする前の30秒間再利用可能であり、再接続の試行のための短いウィンドウを提供します。
これらの制限を遵守し、タイムアウトの動作を理解することで、アプリケーションが応答性と安定性を保ちながら、シームレスなユーザー体験を提供できるようになります。