2017-08-30 35 views
0

我使用Android上的Twilio Programmable Chat SDK開發了聊天應用程序。Android Twilio Programmable Chat當應用程序轉到背景時斷開連接

問題:

有兩個用戶一個&乙加入到通道「AB_Private」,做聊天做工精細。

現在用戶一個新聞主頁按鈕並把應用程序在背景。 Twilio SDK檢測不活動並開始向服務器發送ping以保持連接正常。

工作正常4-5分鐘,但之後twilio與套接字斷開並開始檢索請求。但它永遠不會連接,直到用戶應用程序在後臺。

現在,當應用程序進入前臺時,twilio重置會話並嘗試重新連接,但連接需要更多時間,有時最多需要5分鐘。

所以我的問題是如何保持連接與Twilio應用程序在後臺時活着?

任何幫助將不勝感激。

回答

2

Twilio開發人員在這裏傳播。

當應用程序背景時,我們無法保持連接,所以這是不可能的。

緩慢的重新連接時間可能是由於我們可以嘗試修復SDK中的重新連接嘗試。

與此同時,我建議您檢測應用何時進入後臺模式並斷開聊天客戶端。然後,當你的用戶收到另一條消息時,他們會得到一個推送通知,你可以重新連接客戶端。或者當應用程序返回到前臺時,請重新連接。

讓我知道是否有幫助。

更新

此進行了研究,認爲在Twilio的SDK中的錯誤。剛剛發佈了一個修復程序來解決這個問題。請更新到最新版本的SDK。你可以在這裏看到更新日誌:

安卓

的iOS:

+0

@ philnash感謝您的即時回覆。我知道不建議將連接保持在後臺模式。但問題在於重試時間是漸進的,當應用程序再次進入前臺時,重新連接需要更多時間。沒有直接的方法可以簡單地調用reconnect。目前我們需要再次加載所有頻道,重新加入並設置代表,這需要更多時間。我們需要在最近的聊天屏幕上顯示輸入指示符,其中所有頻道都像whatsapp一樣列出。請指導我哪種方法更可靠。 –

+0

您可能希望在本地存儲頻道和最近的消息,以便當用戶返回到應用程序時,您可以在重新連接時查看頻道並與其頻道互動。自從您提到Whatsapp以來,我注意到當我喚醒WhatsApp應用程序時,它顯示它正在重新連接,同時仍顯示最近的對話。我會遵循這種模式。 – philnash

+0

@ philnash謝謝你的建議。其實我們正在做同樣的事情,一切都在本地sqlite數據庫管理,它工作正常。但每當應用程序來自後臺時重新創建Chatclient的問題是,我們需要重新獲取所有頻道,重新加入並設置代理。因爲存在的通道對象不適用於新客戶端。沒有簡單的方法來執行簡單的連接和斷開。那麼有沒有什麼辦法可以讓單一的委託方法監聽用戶參與的所有私人頻道,而不必每次都獲取並加入? –

相關問題