使用Smack for Android实现FCM与XMPP

Avn*_*ary 8 android xmpp smack firebase-cloud-messaging

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

  1. 在聊天期间,如果某种方式连接丢失,那么重新连接需要花费很多时间,有时甚至连接都没有.即使在连接连接后,它也停止发送聊天消息,因为它不再在另一侧接收.我已经重新初始化了资源,但它有时会工作
  2. 如果我的USER断开连接(离线),我想使用FCM发送消息.我已经为其他事情实施了FCM并且工作正常.但我想知道如果其他用户处于离线状态,我如何将FCM与SMACK API一起使用.我正在尝试,但我不知道使用XMPP实现FCM的正确方法.
  3. 在聊天期间,我无法在另一方获得用户的存在.

请建议我正确的XMPP(openfire)实施方式.所以,它像whatsapp一样无缝地工作.用户在互联网重新连接或活动打开后立即连接为新实例等.它的1对1聊天,即一次只有两个用户连接.在此先感谢,请不要降级我的问题,因为我是XMPP实施的新手.

小智 -1

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

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