【发布时间】:2013-09-04 12:28:25
【问题描述】:
好的,这是我被困了这么多天的问题。
我正在 XMPP 客户端 - SMACK 的帮助下开发一个简单的聊天应用程序。 从一个朋友到另一个朋友的正常聊天过程对我来说一切正常,还添加了通知部分。
我无法做的是,如果我强行关闭我的应用程序,整个 SMACK 会话就会停止。
我无法将消息发送给已关闭应用程序的用户。 现在,我如何保持用户的状态永久在线,这样即使他关闭了应用程序,他也可以接收消息。
【问题讨论】:
好的,这是我被困了这么多天的问题。
我正在 XMPP 客户端 - SMACK 的帮助下开发一个简单的聊天应用程序。 从一个朋友到另一个朋友的正常聊天过程对我来说一切正常,还添加了通知部分。
我无法做的是,如果我强行关闭我的应用程序,整个 SMACK 会话就会停止。
我无法将消息发送给已关闭应用程序的用户。 现在,我如何保持用户的状态永久在线,这样即使他关闭了应用程序,他也可以接收消息。
【问题讨论】:
你不能。如果应用程序关闭,则用户不再在线并且服务器知道这一点。您仍然可以向他们发送消息,但存储离线消息是服务器的工作,但这意味着必须对服务器进行配置。
一旦用户再次连接就可以检索它们。
【讨论】:
这里有一些解决问题的建议
尝试实施:
每 x 分钟连接一次的长时间运行的服务(轮询解决方案)我个人建议不要这样做,因为它会消耗网络和电池。
Implement GCM in your app and server。 它在发送消息并连接到服务器以检索有效负载时唤醒应用程序。 (事实上,通过 C2DM 使用 GCM,您可以通过 google 发送有效负载,甚至不必连接,但我避开了这一点)
【讨论】: