2013-04-05 21 views

回答

3

根據你的問題,我假設你使用的是Twilio Client JavaScript SDK?如果確實如此,那麼不幸的是,如果託管SDK的頁面重新加載,瀏覽器和Twilio之間的連接將會丟失,因爲瀏覽器正在重新加載所有內容,包括JavaScript SDK。

有幾種不同的技術,我可以從頭頂上想到可以幫助避免頁面重新加載的另一種方法,另一種方法可以幫助您在瀏覽器連接斷開的情況下恢復呼叫,因爲的頁面重新加載。這很大程度上取決於您的特定應用程序以及您試圖爲用戶創建的體驗。

因此,爲了幫助避免重新加載頁面:

1)使用AJAX請求到服務器,以避免重新加載頁面。如果您的頁面包含表單等內容,或者您​​希望使用服務器中的數據更新頁面內容,則可以使用對服務器的AJAX請求,而不是正常的完整頁面回發來提交表單或檢索數據表單服務器。這將有助於避免在這兩種情況下重新加載整個頁面。

2)使用iFrame託管您的頁面內容,然後將Twilio SDK放入父頁面(定義iFrame的頁面)。這可以讓您重新加載託管在iframe中的內容,而無需重新加載整個主機頁面,避免重新加載Twilio庫。其缺點是,iframe中的內容與其主機之間的通信可能會非常快速地混亂。

這兩種技術都不是傻瓜。很明顯,用戶總是可以在瀏覽器上點擊刷新按鈕,這會導致連接丟失。

在頁面確實重新加載並且從Twilio到瀏覽器的連接丟失的情況下,一個想法是利用Twilios功能來幫助將呼叫者重新連接在一起。當用戶撥打您的twilio電話號碼,而不是直接連接到在瀏覽器中運行的Twilio客戶端(通過撥打a),而是將該來電者撥入,然後讓瀏覽器客戶端連接到該客戶端。這樣做的好處是,如果瀏覽器斷開連接,原始呼叫者不會掛斷,他們仍將坐在會議室中。只要您保存了會議SID或名稱,就可以讓瀏覽器客戶端重新連接到該會議。

希望能幫助你指出正確的方向。

德文

披露:Twilio員工

+0

感謝德文(和Twilio)... – Subramaniam 2013-04-05 19:09:49