首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从emqx接收推送消息的长期运行服务

从emqx接收推送消息的长期运行服务
EN

Stack Overflow用户
提问于 2021-10-14 05:26:33
回答 2查看 164关注 0票数 0

我希望实现一个长时间运行的服务来接收来自emqx服务器的推送消息(即使程序没有运行)。如果我使用android或JobIntentService,就必须显示一个非故意的通知。如果使用WorkManager,可以定义的最小重复间隔为15分钟。由于某些原因,我们不想使用Firebase。这个问题有解决办法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-10-14 08:30:18

“推送通知”意思是“服务器触发您的应用程序”,因此有两种主要方法:

  1. 使用本机Android Firebase Messagging
  2. 所有客户端与服务器之间的持久连接

First选项使用由Android (或大部分)应用程序管理的单个连接,因此能量消耗非常低,连接/网络事件由Android自己管理。

第二个选项需要关于连接/网络重新连接的大量工作,以及服务器端的一些工作。您的服务器应该保存和管理许多客户端连接,以便记录它的需要。此外,服务器应该知道客户端的TCP/UDP处理程序,以知道在哪个客户端发送消息。这样比第一次消耗更多的电池能量。

如果您打算将"Push Notification“作为”轮询服务器以知道某些通知是否已准备好“,那么您就忽略了"Push”word,您只能创建带有通知图标的持久服务(这种行为从SDK 26开始是强制性的)。

票数 1
EN

Stack Overflow用户

发布于 2021-12-05 06:41:39

正如您所提到的,在android的新版本中,对使用后台服务有很多限制。因此,如果可以的话,我建议您使用混合方法。您的服务器使用google-fcm服务通知客户端新消息,并且每当客户端接收到它时,在WorkManager上建立到emqx的连接,以获取实际消息。在这种方法中,您可以在应用程序位于前台时连接到您的代理,而且您也不会通过fcm发送消息,而是将其用作向客户发送新消息的警报。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69565489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档