通話が受信されたブラウザー ウィンドウがリロードされると、ライブの Twilio 通話が切断されるというシナリオに直面しています。ライブ コールに影響を与えずに、この後退を克服する方法はありますか?
1 に答える
Twilio エバンジェリストはこちら。
あなたの質問に基づいて、Twilio Client JavaScript SDK を使用していると思いますか? その場合、残念ながら、SDK をホストしているページがリロードされると、ブラウザーが JavaScript SDK を含むすべてをリロードするため、ブラウザーと Twilio 間の接続が切断されます。
ページのリロードを回避するために使用できる頭の中で考えられるいくつかの異なるテクニックと、ページのリロードのためにブラウザーへの接続が切断された呼び出しを回復するのに役立つ別のアイデアがあります。 . これの多くは、特定のアプリと、ユーザーのために作成しようとしているエクスペリエンスに依存します。
したがって、ページをリロードする必要がないようにするには:
1) ページのリロードを避けるために、サーバーへの AJAX リクエストを使用します。ページにフォームのようなコンテンツが含まれている場合、またはサーバーからのデータでページのコンテンツを更新したい場合は、通常のページ全体のポストバックではなく、サーバーへの AJAX 要求を使用してフォームを送信したり、データ フォームを取得したりできます。サーバー。これにより、これら 2 つのシナリオでページ全体をリロードする必要がなくなります。
2) iFrame を使用してページ コンテンツをホストし、Twilio SDK を親ページ (iFrame を定義したページ) に配置します。これにより、ホスト ページ全体をリロードすることなく、iframe でホストされているコンテンツをリロードできるため、Twilio ライブラリのリロードを回避できます。これの欠点は、iframe 内のコンテンツとそのホストとの間の通信が非常に面倒になることです。
これら 2 つの手法はどちらも絶対確実というわけではありません。明らかに、ユーザーはいつでもブラウザの更新ボタンを押すだけで、接続が切断されます。
ページがリロードされ、Twilio からブラウザーへの接続が切断された場合、Twilios の機能を活用して発信者を再接続することをお勧めします。ユーザーが Twilio の電話番号に電話をかけた場合、ブラウザーで実行されている Twilio クライアントに ( を使用してクライアントにダイヤルすることによって<Client>
) 直接接続するのではなく、その発信者を会議にダイヤルし<Conference>
、ブラウザー クライアントを同じ会議に接続させます。これの利点は、ブラウザが切断されても、元の発信者が電話を切られず、会議室に座ったままでいることです。会議の SID または名前を保存している限り、ブラウザー クライアントをその会議に再接続させることができます。
それがあなたを正しい方向に向けるのに役立つことを願っています。