使用Smack for Android实现FCM与XMPP

时间:2016-12-16 13:34:22

标签: android xmpp firebase-cloud-messaging smack

我正在使用XMPP在我的Android应用程序中实现聊天,我已经使用了Smack API。我的聊天工作正常,我在本地保存Android设备上的所有聊天消息。以下是我目前面临的一些问题。

  1. 在聊天期间,如果某种方式连接丢失,则需要花费很多时间 再次重新连接,有时它甚至没有连接。即使之后 连接已连接,停止 发送聊天消息,因为它不再在另一边接收。我有 再次初始化资源但有时有效
  2. 如果我的USER断开连接,我想使用FCM发送消息 (离线)。我已经为其他事情及其工作实施了FCM 精细。但我想知道如果其他用户处于离线状态,我如何将FCM与SMACK API一起使用。我正在尝试,但我不知道FCM的正确方法 使用XMPP实现。
  3. 在聊天过程中,我无法在另一边出现用户。
  4. 请建议我正确的XMPP(openfire)实施方式。所以,它像whatsapp一样无缝地工作。用户在互联网重新连接或活动打开后立即连接为新实例等。它的1对1聊天,即一次只有两个用户连接。提前致谢,请不要降级我的问题,因为我是XMPP实施的新手。

1 个答案:

答案 0 :(得分:-1)

  • 对于连接丢失,您应该定义广播接收器,当连接断开时,关闭与openfire的连接,当它再次重新连接时,请确保已连接并授权。

  • 对于离线用户,这是服务器端,如下所示当用户向开火时发送消息时检查最终用户是否在线,然后将消息转发给他,如果它处于离线状态,它将在database中保存消息如果最终用户出现开火请求消防基地将其发送给最终用户