gpt4 book ai didi

java - Smack 4.1 重新连接问题

转载 作者:IT老高 更新时间:2023-10-28 23:36:13 26 4
gpt4 key购买 nike

我正在开发一个聊天应用程序,其中

  1. 我有一个持续运行的后台服务。
  2. 应用程序运行平稳,我可以毫无问题地接收和发送消息。
  3. 我正在使用默认的 Smack 4.1 重新连接管理器,它会在连接丢失时立即连接(几乎 90% 的时间)。

但有时,当连接丢失时,Smack Re-connection Manager 会停止工作。

我无法找出导致此问题的原因。

查看手机时,延迟 12 到 14 小时后,我可以看到 Android 服务仍在运行,但 XMPP 重新连接已停止工作。然后我必须强制停止应用程序,然后重新启动服务并让它再次连接到 XMPP 服务器。

我的假设是当“电话网络从 Wifi 到数据或数据到 Wifi 切换”时发生。与此同时,Smack 4.1 Re-connection Manager 停止工作。虽然,我不确定。

我有问题

  1. PingManager 有什么用? PingManager 在这种情况下可以提供帮助吗?
  2. 什么是流管理?我该如何启用它?在这种情况下有用吗?

还有其他解决方案可以解决这个问题吗?我正在考虑以下解决方案:

  1. 将 GCM 与 XMPP 一起使用,所以当 XMPP 无法重新连接时,我可以获取 PUSH 并在 PUSH 的基础上再次连接。
  2. 使用警报服务。 (问题:由于连接丢失而在队列中的消息将取决于下一个警报时间表)
  3. 每次用户返回应用程序时连接 XMPP。 (问题:由于连接丢失而在队列中的消息将取决于用户返回应用程序)

最佳答案

有点晚了,但也许它可以帮助其他人。我不是 XMPP 专家,但我遇到了一个名为 "XMPP and Android" 的 Ignite Realtime 演示文稿它指出了这个问题以及如何处理这个问题。 page 1

page 2

它提供了将服务器 ping 与警报管理器配合使用,理想情况下,间隔为 30 分钟。

我还发现了另一篇与此问题相关的帖子,并提供了 3 个选项。值得一看。 https://ramzandroidarchive.wordpress.com/2016/03/14/handling-connection-break-issue-in-smack-4-1/ .

关于java - Smack 4.1 重新连接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30182989/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com