🦉
mosquittoによるWebからのMQTT通信の疎通確認
2025/10/21
はじめに
MQTT通信を利用したWebコントローラーを作成する中で,通信の疎通確認を行う必要がありました.
その際に,軽量なMQTTブローカーである mosquitto を使って動作確認を試みたのですが,実際に設定や接続の段階でいくつかつまずいた点がありました.
本記事では,私が疎通確認を行うまでの過程や,注意すべきポイントをまとめて共有します.
開発環境
| カテゴリー | 名称 | バージョン |
|---|---|---|
| OS | Windows 11 | 24H2 |
| CPU | Intel Corei7-8565U | |
| メモリ | 24GB |
mosquittoの環境構築
これは以下の記事がとても分かりやすくまとめてあるので引用させていただきます.
基本的にはこれで動作します.
発生した問題
コマンドプロンプトでmosquittoのサーバーを立ち上げて,Webからもコネクションできたはいいものの,メッセージが送信されませんでした.
具体的には,
-
mosquitto -c "mosquitto.conf" -vでサーバーを立ち上げた - 別のタブでサブスクライバーも立ち上げた.
- さらに別のタブでパブリッシャーを立ち上げて通信させるとうまくいく
- Webからコネクションはできてる
- メッセージを送信してもサブスクライバーのところに表示されない
- 立ち上げたサーバーのログには受信できていることが確認できた
このような感じでした.
原因と解決
おそらくコマンドプロンプトを立ち上げた時に自動的にmosquittoのサーバーが起動し,複数サーバーが立っていたのではないかと思います.
Webから送信されるメッセージは手動で起動したサーバーに届くけれど,起動したサブスクライバーは自動で起動したサーバーのものになっていたのでうまく送信されなかったのだと思います.
解決方法としては,一度mosquittoサーバーをすべて終了し,もう一度立ち上げなおすのがよいと思います.
まず,windowsのアプリケーションの中から「サービス」というアプリケーションを起動します.

その中から,Mosquitto Brokerという項目を探し,サービスを停止させます.(画像はサービス停止済み)
その後,コマンドプロンプトで再びコマンドを実行しサーバーを立ち上げます.
これでちゃんとサブスクライバーにもメッセージが届くようになりました.
Discussion