【问题标题】:Android Twilio Programmable Chat disconnect when app goes to background当应用程序进入后台时,Android Twilio 可编程聊天断开连接
【发布时间】:2018-02-08 02:56:48
【问题描述】:

我在 Android 上使用 Twilio 可编程聊天 SDK 开发了聊天应用程序。

问题:

有两个用户 A 和 B 加入了频道 “AB_Private”,并且聊天工作正常。

现在用户按下主页按钮并将应用程序置于后台。 Twilio SDK 检测到不活动并开始向服务器发送 ping 以保持连接处于活动状态。

工作正常 4-5 分钟,但之后 twilio 断开与套接字的连接并开始检索请求。但在用户应用程序处于后台之前它永远不会连接。

现在,当应用程序进入前台时,twilio 会重置会话并尝试重新连接,但连接需要更多时间,有时最多需要 5 分钟。

所以我的问题是,当应用程序在后台时,如何保持与 Twilio 的连接?

任何帮助将不胜感激。

【问题讨论】:

    标签: android twilio chat twilio-programmable-chat


    【解决方案1】:

    这里是 Twilio 开发者宣传员。

    当应用处于后台时,我们无法保持连接,所以这是不可能的。

    缓慢的重新连接时间可能是由于我们可以尝试在 SDK 中修复的重新连接尝试的回退。

    同时,我建议您检测应用何时进入后台模式并断开聊天客户端。然后,当您的用户收到另一条消息时,他们将收到推送通知,此时您可以重新连接客户端。或者当应用返回前台时,重新连接。

    如果有帮助,请告诉我。

    更新

    已对此进行了调查,并将其视为 Twilio SDK 中的一个错误。刚刚发布了一个修复程序来解决这个问题。请更新到最新版本的 SDK。您可以在此处查看更改日志:

    安卓:

    iOS:

    【讨论】:

    • @philnash 感谢您的即时回复。我了解不建议在后台模式下保持实时连接。但问题是重试时间是递增的,当应用程序再次进入前台时,重新连接需要更多时间。并且没有直接的方法可以简单地调用重新连接。目前我们需要重新加载所有频道并重新加入它们并设置代表,这需要更多时间。我们需要在最近的聊天屏幕上显示打字指示器,其中列出了所有频道,如 whatsapp。请指导我哪种方法更可靠。
    • 您可能希望在本地存储频道和最近的消息,以便当用户返回应用程序时,他们能够在您重新连接时看到他们的频道并与之互动。既然您提到了 Whatsapp,我注意到当我唤醒 Whatsapp 应用程序时,它显示它正在重新连接,同时仍显示最近的对话。我会遵循这种模式。
    • @philnash 感谢您的建议。实际上我们也是在做同样的事情,一切都在本地 sqlite 数据库中进行管理,并且运行良好。但是每次应用程序从后台重新创建 Chatclient 的问题是,我们需要重新获取所有频道,重新加入并设置委托。因为现有的通道对象将不适用于新客户端。没有直接的方法来执行简单的连接和断开连接。那么有没有办法让单个委托方法监听用户参与的所有私人频道而不获取它们并每次都加入??
    • 我注意到您已与支持人员联系,并且已通过聊天团队升级,因此最好现在就交给他们。如果有人可以为您解决这个问题,聊天团队可以。当有解决方案时,我会尝试更新这个问题。
    • 我们还需要断开连接并重新连接吗?还是只需要更新 pod?
    猜你喜欢
    • 2019-01-30
    • 2017-12-06
    • 1970-01-01
    • 1970-01-01
    • 2015-05-02
    • 2019-09-22
    • 1970-01-01
    • 1970-01-01
    • 2017-11-15
    相关资源
    最近更新 更多