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



我正在使用反应原生安卓,想问问是否有任何方法可以将 mqtt 与后台服务连接,以便在应用程序关闭时我仍然可以通过 mqtt 接收消息?

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

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

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

祝你好运!

相关内容

  • 没有找到相关文章

最新更新