有没有办法让mqtt连接后台服务?

时间:2017-10-23 06:12:58

标签: react-native react-native-android

我正在使用反应原生android并想询问是否有任何方法可以与后台服务进行mqtt连接,这样当应用关闭时我仍然可以通过mqtt接收消息?

1 个答案:

答案 0 :(得分:0)

我自己没有这样做,但这应该有点可能。虽然我不知道是否可以打开一个接收MQTT消息的连接,无论应用程序是在前台运行,在后台运行,还是已经运行和关闭,我都认为可以实现这种效果。

后台任务(在应用程序处于后台或已关闭时运行)并不总是跨平台工作(主要是仅限Android),并且不允许您在接收MQTT等基于事件的触发器上运行发布。因此,您将根据setInterval等内容查看我的建议,并在给定时间点检查消息。由于连接始终不存在,因此您必须在MQTT连接上设置大的保持活动间隔(或不清洁的会话)以匹配您检查消息的时间间隔并依赖QoS 1或2(更难) ),或者关闭并重新打开MQTT连接并依赖retain(更容易)。

如果您只需要在应用程序位于前台或后台时通过MQTT消息,则可以使用https://github.com/ocetnik/react-native-background-timersetInterval之类的内容并唤醒以按特定时间间隔检查消息具有紧密的粒度。如果您需要消息即使应用程序已关闭也能通过,则需要https://github.com/vikeri/react-native-background-job之类的内容,这样只允许您以15分钟及以上的粒度运行代码。

祝你好运!