在 iOS 环境的混合应用程序中在后台启用 MQTT 服务

Enabling MQTT Service in Background in Hybrid Applications for iOS environment

我将 MobileFirst Platform 7.1 与 Paho MQTT(物联网)结合使用,我正在尝试使用 mqtt 为 Android 和 iOS 实施混合应用程序。

我已经在 Android 中测试了该应用程序,它按预期工作,当它在前台和后台时,

在 iOS 中,它没有按预期工作。它在前台工作正常,但在后台不工作。我正在使用 XCode 和 iPhone 6.

的 iPhone 模拟器进行测试

我找到了一个使用 MobileFirst 和 MQTT 实现的项目。来自 https://developer.ibm.com/mobilefirstplatform/documentation/integration/mq-telemetry-transport/

我只是添加主机和端口号并添加 android、ios environment.but 面临同样的问题 android 工作 iOS 没有。

此刻我能做什么?

更新:

在 iOS 中,它正常工作 foreground.but 当我向后台发送 "MQTT client" 连接丢失形式的代理时。

这个方法火了:

this.client.onConnectionLost = function() {
        alert("Connection lost!");
    };

另一方面,android,windows 它非常适合前景和背景

例如:

我有一个房间有 PIR 传感器。它像发布者一样工作。我的应用程序用户是订阅者。

当用户离开房间时,她打开应用程序,订阅并 发送申请背景。

任何时候有人在那个时间整个房间,她都会收到通知。

有关如何在 iOS 的后台 运行 的详细信息,请参见 here。此 link 还列出了 Apple 允许在后台 运行 执行的操作,如果您的应用不符合这些条件,则它可能会被从应用商店中移除。

该列表还显示了要在您的 Info.plist 中放置哪些 UIBackgroundModes 以标记您的应用需要后台访问。

我找不到至少一种为混合应用程序管理它的方法,尝试了几种方法,但都失败了,并且很容易为本机应用程序 MQTT iOS 后台管理它。

待办事项

计划支持新平台(iOS、Windows Phone)

在Android版本

中添加后台服务支持

更多检查这个linkhttps://github.com/arcoirislabs/cordova-plugin-mqtt