首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >让iOS应用程序继续使用MQTT协议

让iOS应用程序继续使用MQTT协议
EN

Stack Overflow用户
提问于 2014-11-05 16:58:47
回答 2查看 2.2K关注 0票数 3

对于一个项目,我需要很多客户来订阅不同的硬件设备。在这个设置中,客户端是iOS -设备.硬件有点像覆盆子,但我认为这不重要。这种硬件设备如果测量某种信息,就会发送信号。这是一个罕见的事件,可能永远不会发生。

该应用程序的目的是警告用户,当某种事件出现在他感兴趣的地方。

我计划使用MQTT协议来实现这一点。

这就是我的问题所在。要使用MQTT,应用程序需要每隔几分钟发送一次PINGREQ,即使应用程序处于后台。此外,应用程序需要接收其订阅,并立即处理。

这就是我计划做的:

  1. 将Info.plist中的“Info.plist”键设置为"voip“。
  2. 将套接字标记为voip套接字,以便当应用程序收到某些信息时唤醒它。
  3. 设置keepAliveTimer:callback:并发送PINGREQ

。。如所述,这里

我的问题是:苹果会允许这样做吗?我的应用不是VoIP应用。若否,是否有其他方法可供选择?

EN

回答 2

Stack Overflow用户

发布于 2015-01-26 11:41:13

如果Apple策略不允许您将MQTT客户端应用程序放在后台运行,那么解决方案应该是实现额外的push服务。

push服务订阅您的MQTT代理并向您的移动设备发送推送通知,这样无论它们是否运行了MQTT客户端应用程序,它们都会得到事件。

票数 2
EN

Stack Overflow用户

发布于 2016-03-14 04:53:27

是!当你使用VOIP时,苹果有可能拒绝你的应用程序(即使你的应用程序不是VOIP类型的应用程序)来保持应用程序的活力!我使用位置服务,这是一个适当的解决方案,以保持应用程序在后台模式下的活力。

询问使用位置服务的权限,即使应用程序处于后台模式&在获得允许回叫后,将您的位置管理器的期望精度设置为最坏的,距离过滤器为99999 (意味着如果用户从上次位置更新回拨超过99999米时,将通知您的应用程序)。

通过改变所需的精度和距离过滤器,您可以节省用户的电池消耗,否则您的应用程序将消耗大量的能源

这是一个适当的方法,使您的应用程序在后台连续运行超过2天(已经在我们的项目中使用)。

哈哈!在编码方面玩得开心:)

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

https://stackoverflow.com/questions/26762830

复制
相关文章

相似问题

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