🦉

mosquittoによるWebからのMQTT通信の疎通確認

に公開

2025/10/21

はじめに

MQTT通信を利用したWebコントローラーを作成する中で,通信の疎通確認を行う必要がありました.
その際に,軽量なMQTTブローカーである mosquitto を使って動作確認を試みたのですが,実際に設定や接続の段階でいくつかつまずいた点がありました.

本記事では,私が疎通確認を行うまでの過程や,注意すべきポイントをまとめて共有します.

開発環境

カテゴリー 名称 バージョン
OS Windows 11 24H2
CPU Intel Corei7-8565U
メモリ 24GB

mosquittoの環境構築

これは以下の記事がとても分かりやすくまとめてあるので引用させていただきます.

WEBブラウザでMQTTを使ってみた

基本的にはこれで動作します.

発生した問題

コマンドプロンプトでmosquittoのサーバーを立ち上げて,Webからもコネクションできたはいいものの,メッセージが送信されませんでした.
具体的には,

  • mosquitto -c "mosquitto.conf" -vでサーバーを立ち上げた
  • 別のタブでサブスクライバーも立ち上げた.
  • さらに別のタブでパブリッシャーを立ち上げて通信させるとうまくいく
  • Webからコネクションはできてる
  • メッセージを送信してもサブスクライバーのところに表示されない
  • 立ち上げたサーバーのログには受信できていることが確認できた

このような感じでした.

原因と解決

おそらくコマンドプロンプトを立ち上げた時に自動的にmosquittoのサーバーが起動し,複数サーバーが立っていたのではないかと思います.
Webから送信されるメッセージは手動で起動したサーバーに届くけれど,起動したサブスクライバーは自動で起動したサーバーのものになっていたのでうまく送信されなかったのだと思います.

解決方法としては,一度mosquittoサーバーをすべて終了し,もう一度立ち上げなおすのがよいと思います.

まず,windowsのアプリケーションの中から「サービス」というアプリケーションを起動します.

その中から,Mosquitto Brokerという項目を探し,サービスを停止させます.(画像はサービス停止済み)

その後,コマンドプロンプトで再びコマンドを実行しサーバーを立ち上げます.

これでちゃんとサブスクライバーにもメッセージが届くようになりました.

参考文献

WEBブラウザでMQTTを使ってみた
WindowsでMQTTを使ってみる

Discussion