質問・問題
チャンネルのプリロード (preloading channels) とは何ですか ?
回答・解決方法
通常のチャンネル接続では、まずクライアントが接続先サーバーのリストを取得するまでのオーバーヘッド処理が発生し、その後、そのサーバーへの接続処理が実行されます。
チャンネルのプリロード (preloading channels) とは、そのオーバーヘッド処理を予め実行しておく機能です。
これにより、クライアント (オーディエンス) がチャンネル接続するまでの時間短縮が期待できるようになります。
この機能は、複数チャンネルのプリロードが可能です。
複数チャンネルのプリロードをご検討の場合、Wildcard Token と併用することで、チャンネル毎にトークンを用意する手間を減らすことができます。
チャンネルをプリロードするには何をすれば良いですか ?
チャンネル名、 user ID (または user account)、およびトークンを用意し、これらを専用の API (preloadChannel) に渡してコールすることで、そのチャンネルのプリロードが完了します。
プリロード成功したチャンネルに接続する場合は、同じチャンネル名、 user ID (または user account)、およびトークンで joinChannel API または joinChannelWithUserAccount API をお使いください。
この機能による制限はありますか ?
- user ID として 0 はご利用できません。それ以外の数字を指定する必要があります。
- Channel Profile が Communication の場合、効果はありません。
- Audience role を持つユーザーにのみ効果があります。
- Audio Scenario が Chorus の場合、効果はありません。
- RtcEngine 1 つにつきプリロード可能なチャンネル数は最大で 20 までです。この制限を超えた場合、直近 20 までのチャンネルのみプリロードの効果があります。
どの SDK が、この機能をサポートしていますか ?
(2023-09 時点において) 4.2.2 以降の Native および Framework 向け SDK が、この機能をサポートしています。
プリロードに失敗した場合、そのチャンネルへの接続はできなくなりますか ?
この機能はチャンネル接続を診断するものではありませんので、プリロード失敗したチャンネルには接続できない、というわけではございません。
一度チャンネルから退出した場合、再度プリロードする必要はありますか ?
プリロード用のトークンが有効期限内であれば、再度、プリロード処理を呼び出す必要はありません。
トークン指定してチャンネルのプリロードした場合、そのトークンを更新する必要はありますか?
はい、あります。
- 1 つのチャンネルのみプリロードしている場合... preloadChannel API で更新。
- 複数チャンネルを Wildcard Token でプリロードしている場合... updatePreloadChannelToken API で更新。
- 異なるチャンネルを、それぞれ異なるトークンでプリロードしている場合... preloadChannel API で更新。
尚、プリロードしたチャンネルに接続中、トークンの更新が必要な場合は renewToken API をお使いください。