私が持っているreact-nativeプロジェクトにMQTTを追加するとき、正しい方法を見つけるのに苦労しています。プロジェクトはiOSとAndroidで実行する必要があるため、理想的にはMQTTをjavascript側で処理できます。ネットワークの隠れ家はモバイルノードとクラシックノードで異なることに気付いたので、MQTT.jsをフォークするルートをたどり始め、ロードブロッキングの後にロードブロッキングにぶつかりました。
MQTT.jsをフォークするルートを続行する必要がありますか?ポリフィルまたはその他の手段を使用して、モバイル環境でノード環境を複製することを目指す必要がありますか?分解してObjectiveCライブラリとJavaライブラリを取得し、それらをラップする必要がありますか?
AndroidとiOSの両方で react-native-mqtt を使用して、中程度の成功を収めました。プラットフォームごとにネイティブモジュールをブリッジするだけで、PahoはAndroidおよび MQTTClient iOSの場合。
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!
私はいくつかの調査を行いましたが、行く方法はネイティブ(tcp)mqttを使用することであり、WebSocketを介した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
次に、readmeの手順に従って使用します。
それを試してみてください。