在将MQTT添加到我拥有的反应原生项目时,我很难找到正确的方法。该项目需要在iOS和Android上运行,因此理想情况下可以在javascript端处理MQTT。我意识到网络巢穴从移动节点到经典节点是不同的,所以我开始了分支MQTT.js的路线,并在路障后遇到障碍。
我应该继续沿着分叉MQTT.js的路线走吗?我是否应该使用polyfill或其他方法在移动环境中复制节点环境?我应该分解并获得一个客观的C库和Java库并将它们包装起来吗?
答案 0 :(得分:3)
在真正需要react-native-mqtt工作并且无法正确配置之后,唉,我找到了react_native_mqtt。是的,他们看起来一样,但相信我,他们是不同的。
在本单元中,您不必费力地使用Podfiles(ios)或MainActivity.java或MainApplication.java(android)文件来实现此功能。您需要做的只是包含它。
并按照instructions:
进行操作import { initMqtt } from 'react_native_mqtt';
import { AsyncStorage } from 'react-native';
... your awesome code below!
答案 1 :(得分:2)
我在Android和iOS上使用react-native-mqtt取得了一定的成功。它只是跨越每个平台的原生模块,Android上的Paho和iOS上的MQTTClient。
答案 2 :(得分:1)
我做了一些研究,看起来应该使用本地(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
,然后按照自述文件中的步骤使用它。
尝试一下。