【问题标题】:Implementation of FCM with XMPP using Smack for Android使用 Smack for Android 使用 XMPP 实现 FCM
【发布时间】:2017-05-02 07:45:21
【问题描述】:

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

  1. 在聊天期间,如果以某种方式丢失连接,则需要很长时间才能 再次重新连接,有时它甚至没有连接。即使在之后 连接已连接,它停止 发送聊天消息,因为它不再在另一端接收。我有 再次初始化资源,但有时会起作用
  2. 如果我的 USER 断开连接,我想使用 FCM 发送消息 (离线)。我已经为其他事情及其工作实施了 FCM 美好的。但是我想知道如果另一端的用户离线,我如何使用带有 SMACK API 的 FCM。我正在尝试,但我不知道 FCM 的正确方法 使用 XMPP 实现。
  3. 在聊天期间我无法让对方在场。

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

【问题讨论】:

  • 我有同样的问题,有时我什至没有收到断开的回调。 “重新连接”后,它不会向 FCM 发送消息。
  • 我也面临同样的问题。请帮忙
  • 我也有同样的痛苦。请任何人帮忙。
  • 嘿,我有关于首先设置 smack 和 fcm xmpp 的问题。我在任何地方都找不到文档。

标签: android xmpp firebase-cloud-messaging smack


【解决方案1】:
  • 对于丢失的连接,您应该定义广播接收器,当连接断开时关闭与openfire 的连接,当它再次出现时,请确保您已连接并获得授权。

  • 对于离线用户,这是服务器端,如下所示,当用户发送消息开火时检查最终用户是否在线,然后将消息转发给他,如果它离线,它将把消息保存在database,如果最终用户上来开火要求火力基地将其发送给最终用户

【讨论】:

    猜你喜欢
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-12
    • 2015-12-03
    • 2018-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多