gpt4 book ai didi

android - 我们应该将 GCM(或新的 FCM)与 openfire 一起用于离线推送通知消息吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:14:09 25 4
gpt4 key购买 nike

它似乎与聊天应用程序一起工作,使用 openfire 和 smack 可以有以下两种方式,

第一种方式

  1. Smack 与 openfire 服务器建立连接,只要连接到 openfire 服务器,它就可以接收和向服务器发送更新。如果未连接,openfire 上有一个插件可以使消息保持离线状态,并在客户端再次连接后发送它们。在这种情况下接收所有消息,

    • 1.1 设备只有在没有互联网的情况下才应断开与 openfire 的连接。
    • 1.2 用户退出
    • 1.3 设备离线

    如果在任何其他情况下与服务器的连接断开,这会导致消息丢失。当前应用程序正在使用此架构。

此方法的问题:

  • 这方面的主要问题是,如果由于任何崩溃或有问题的应用程序被完全杀死,它的非警报管理器任务也会被杀死。直到应用程序再次打开,应用程序才重新启动。
  • 第二个问题是,由于连续处理,它会消耗电池
  • 在更新的操作系统上,应用程序进入深度 sleep 、打瞌睡模式、超省电模式、后台

第二种方式

2.Smack 与 openfire 服务器建立连接,只要连接到 openfire 服务器,它就可以接收和向服务器发送更新,直到应用程序处于前台。一旦进入后台,应用程序将完全断开与服务器的连接。在这种情况下,由于应用程序处于离线状态,openfire 必须将所有消息发送到 Firebase 服务器,同一个应用程序会监听 firebase 通知,当它收到来自 firebase 的通知时,它会重新连接到 openfire 并获取消息并显示或直接显示消息来自 firebase(在这种情况下,此记录也进入 firebase 服务器)。应用程序从 gcm 接收到该通知,然后需要在应用程序中管理消息传递等。

问题

  • 当应用程序进入后台时断开与服务器的连接,处理其用例,因为应用程序是否长时间处于后台。应用程序是否进入后台以选择任何文件和这样的用例。
  • 这使得代码和应用程​​序非常复杂,并且还需要管理多个服务器。
  • 还可能存在更多安全漏洞,因为我不想与任何第三方共享我的应用程序消息数据。

我的问题

  1. 哪种方式更好、更安全、更可靠?
  2. 我的应用程序正在使用方式 1,我应该切换到第二种方式吗?
  3. 确保应用程序以各种方式保持连接的可能原因是什么?而且它消耗的面糊也更少?

最佳答案

1- 哪种方式更好、更安全、更可靠?答:第二种方式

2- 我的应用程序正在使用方式 1,我应该切换到第二种方式吗?答:你应该,但显然这需要 Openfire 技能来开发一个将消息路由到 FCM 的插件。

3- 确保应用程序以各种方式保持连接的可能原因是什么?而且它也消耗更少的面糊?答:简单地说,如果我们减少 XMPP 流量,就可以节省处理能力,从而减少电池消耗。但显然对于聊天应用程序来说,这不是一个选项。因此,为了保持应用程序的交互性和电池友好性,您应该在应用程序进入后台并依赖推送通知(在服务器端集成)时断开 XMPP。

关于android - 我们应该将 GCM(或新的 FCM)与 openfire 一起用于离线推送通知消息吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39953817/

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