我正在使用反应原生android并想询问是否有任何方法可以与后台服务进行mqtt连接,这样当应用关闭时我仍然可以通过mqtt接收消息?
答案 0 :(得分:0)
我自己没有这样做,但这应该有点可能。虽然我不知道是否可以打开一个接收MQTT消息的连接,无论应用程序是在前台运行,在后台运行,还是已经运行和关闭,我都认为可以实现这种效果。
后台任务(在应用程序处于后台或已关闭时运行)并不总是跨平台工作(主要是仅限Android),并且不允许您在接收MQTT等基于事件的触发器上运行发布。因此,您将根据setInterval
等内容查看我的建议,并在给定时间点检查消息。由于连接始终不存在,因此您必须在MQTT连接上设置大的保持活动间隔(或不清洁的会话)以匹配您检查消息的时间间隔并依赖QoS 1或2(更难) ),或者关闭并重新打开MQTT连接并依赖retain(更容易)。
如果您只需要在应用程序位于前台或后台时通过MQTT消息,则可以使用https://github.com/ocetnik/react-native-background-timer到setInterval
之类的内容并唤醒以按特定时间间隔检查消息具有紧密的粒度。如果您需要消息即使应用程序已关闭也能通过,则需要https://github.com/vikeri/react-native-background-job之类的内容,这样只允许您以15分钟及以上的粒度运行代码。
祝你好运!