React Native上的MQTT?

Pau*_*tti 9 android node.js ios mqtt react-native

在将MQTT添加到我拥有的反应原生项目时,我很难找到正确的方法.该项目需要在iOS和Android上运行,因此理想情况下可以在javascript端处理MQTT.我意识到网络巢穴从移动节点到经典节点是不同的,所以我开始沿着分叉路线的方式阻止MQTT.js并且遇到障碍.

我应该继续沿着分叉MQTT.js的路线走吗?我是否应该使用polyfill或其他方法在移动环境中复制节点环境?我应该分解并获得一个客观的C库和Java库并将它们包装起来吗?

Sud*_*Plz 6

我做了一些研究,看起来要走的路是使用本机 (tcp) mqtt,而不是通过 websockets 的 mqtt(尽管你可以两者都做)。

这条路还没有铺好,所以在研究了我们所有的选择后,我最终修改了 tuanpmt/react-native-mqtt 以使库更稳定,现在正在生产中使用它。

你去吧:https : //github.com/SudoPlz/sp-react-native-mqtt

那是原生 mqtt(使用 iOS 和 Android mqtt 库),而不是需要奇怪的配置和导入才能使用 react-native 的 websockets js 库。我会说这是你现在最好的选择。

npm install sp-react-native-mqtt 然后按照自述文件中的步骤使用它。

尝试一下。

  • 这应该是公认的答案,因为所有其他库都已弃用或正在使用 websocket 连接到代理。我失去了 1 天的时间来搜索和理解为什么所有其他图书馆都不起作用。 (2认同)

小智 5

我在 Android 和 iOS 上都使用react-native-mqtt取得了一定的成功。它只是桥接每个平台的原生模块,Android 上的Paho和 iOS上的MQTTClient


aes*_*rro 5

在真正需要react-native-mqtt起作用并且无法正确配置它之后,,,我发现了react_native_mqtt。是的,它们看起来一样,但是请相信我,它们是不同的。

在此模块中,您无需为Podfiles(ios)或MainActivity.java或MainApplication.java(android)文件而费力。您需要做的就是包括它。

并按照说明进行操作

import { initMqtt } from 'react_native_mqtt';
import { AsyncStorage } from 'react-native';

... your awesome code below!
Run Code Online (Sandbox Code Playgroud)