web-dev-qa-db-ja.com

MQTT on React Native?

私が持っているreact-nativeプロジェクトにMQTTを追加するとき、正しい方法を見つけるのに苦労しています。プロジェクトはiOSとAndroidで実行する必要があるため、理想的にはMQTTをjavascript側で処理できます。ネットワークの隠れ家はモバイルノードとクラシックノードで異なることに気付いたので、MQTT.jsをフォークするルートをたどり始め、ロードブロッキングの後にロードブロッキングにぶつかりました。

MQTT.jsをフォークするルートを続行する必要がありますか?ポリフィルまたはその他の手段を使用して、モバイル環境でノード環境を複製することを目指す必要がありますか?分解してObjectiveCライブラリとJavaライブラリを取得し、それらをラップする必要がありますか?

10
Paul Caponetti

AndroidとiOSの両方で react-native-mqtt を使用して、中程度の成功を収めました。プラットフォームごとにネイティブモジュールをブリッジするだけで、PahoはAndroidおよび MQTTClient iOSの場合。

3
Igor Makarov

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!
6
aestrro

私はいくつかの調査を行いましたが、行く方法はネイティブ(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の手順に従って使用します。

それを試してみてください。

5
SudoPlz