Node-RED: MQTTサーバー
Node-REDをMosquitto MQTTサーバーに接続する方法
👋 Stackheroのドキュメントへようこそ!
Stackheroは、数多くの利点を提供する、すぐに使えるNode-REDクラウドソリューションを提供しています。
- MQTTサーバーが含まれています(Mosquitto)。
- Node-RED管理UIへのフルアクセス。
- Node-RED ダッシュボードが含まれています。
- 無制限で専用のSMTP メールサーバーが含まれています。
- ワンクリックで簡単にアップデート。
- HTTPSで保護されたカスタマイズ可能なドメイン名(例: https://node-red.your-company.com)。
- プライベートで専用のVMによる最適なパフォーマンスと強力なセキュリティ。
時間を節約し、生活を簡素化しましょう: StackheroのNode-REDクラウドホスティングソリューションを試すのに5分しかかかりません!
StackheroのNode-REDサービスには、組み込みのMQTTサーバーが搭載されており、安全かつ信頼性の高い通信チャネルを通じてIoTデバイスを簡単に統合できます。
はじめに、Stackheroダッシュボードにアクセスし、ご利用中のNode-REDサービスを選択して、サービス設定内の「MQTT Server」オプションを有効にしてください。
サーバーが有効化されると、ポート8883を使用して接続できます。すべての接続はTLS暗号化で保護されており、データの安全性が確保されています。
シンプルな例:Node-REDでMQTTサーバーを利用する
Node-REDでMQTTを初めて利用される場合、すぐに始められるシンプルな例をご紹介します。この例では、トピックにメッセージを送信し、そこからメッセージを受信する方法を示しています。フロー例をダウンロードし、「Import」メニューからNode-REDインスタンスにインポートできます。
MQTTをNode-REDに接続するシンプルな例
MQTTノードが「connecting」状態のまま動かない場合は、
MQTT authenticationフローがまだ存在しているか確認することをおすすめします。もしフローがない場合は、こちらからダウンロードできます: mqttAuthenticationFlow.json。このフローをNode-REDインスタンスにインポートし、Usersノードにご希望のパスワードを設定し、不要なコメントは適宜削除してください。
Node-REDでのMQTTユーザー認証
Node-REDでは、専用のフローを使ってMQTTユーザー認証を簡単に管理できます。「MQTT Authentication」フローはNode-REDの管理パネルから直接確認できます。
MQTT認証フロー
この認証フロー内で、Usersテンプレートノードを探してください。このノードには、各ユーザーの認証情報を定義できる配列が含まれています。プロジェクトの要件に応じて、必要な数だけユーザーを追加できます。
注意:
node-redユーザーは、Node-REDがMQTTサーバーに接続するために必須です。このユーザーを設定から削除しないようご注意ください。
MQTTユーザーノード
WebSockets経由でのMQTT接続
Mosquitto MQTTサーバーには、MQTTプロトコルまたはWebSocketsのいずれかで接続できます。
MQTTプロトコルは軽量でIoTデバイスに最適ですが、Webブラウザでは標準でサポートされていません。ブラウザからMQTTサーバーにアクセスしたい場合は、WebSocketsの利用が推奨されます。この方法では、MQTTトラフィックをWebSocketプロトコルでカプセル化でき、Stackheroのサービスともシームレスに連携します。
WebSocket接続を有効にするには、Stackheroダッシュボードで「WebSocket Support」オプションを有効化してください。有効化後、クライアントの設定でWebSocket用URL wss://<XXXXXX>.stackhero-network.com:443/mqtt をご利用ください。ブラウザから接続する場合は、デフォルトの mqtts://<XXXXXX>.stackhero-network.com をこのWebSocket URLに置き換えてください。
MQTTライブラリの選択
開発用途には、「MQTT.js」ライブラリが特に便利です。Node.jsおよびブラウザ環境の両方に対応した堅牢なJavaScriptライブラリです。詳細は公式リポジトリをご覧ください。
ブラウザからMQTTへのWebSockets接続例
ブラウザからWebSockets経由でMQTTサーバーに接続する具体的な例については、こちらのリポジトリをご参照ください: https://github.com/stackhero-io/mqttWebSocketGettingStarted。ご自身のサーバーのurl、username、passwordに合わせてsrc/index.htmlファイルを編集してご利用いただけます。
MQTT WebSocketの例
この構成を試す前に、StackheroダッシュボードでWebSocketサポートが有効になっていることを必ずご確認ください。これにより、ブラウザからの接続がスムーズに行えます。