MQTT
M2M(Machine to machine)機械同士の通信に使われるプロトコルを指向している。
通信モデル
メッセージを送信する「Publisher」(出版者)
受け取る「Subscriber」(購読者)
メッセージを仲介する「Broker」(仲介者)
を模した「Pub/Subモデル」と表現される
Broker
mosquitto
ダウンロード先
http://mosquitto.org/download/
windows64bitの場合「mosquitto-2.0.14-install-windows-x64.exe」をクリックしダウンロード
インストール
エラーが発生したのでファイアウォールのポートを許可する。
ファイアウォール
「スタート」メニュー→「Windowsシステムツール」の「コントロール パネル」→「システムとセキュリティ」→「Windows Defender ファイアウォール」を選択
「詳細設定」を選択
「新しい規則」を選択
「ポート」を選択し、次へ
MQTTは1883番ポートを利用するのでファイアウォールなどの設定を確認し、1883番がメッセージの送受信に利用できる状態にする。
起動確認
インストール後、コマンドプロンプトで「mosquitto -v 」と入力しバージョンが出力されるか確認
メッセージ送受信テスト
サービスが起動中で動かなかった
サービスを止める
C:\Program Files\mosquitto>netstat -oan
アクティブな接続
プロトコル ローカル アドレス 外部アドレス 状態 PID
TCP 127.0.0.1:1883 0.0.0.0:0 LISTENING 7456
TCP [::1]:1883 [::]:0 LISTENING 7456
サービスを再開する
C:\Program Files\mosquitto>mosquitto_sub -h 127.0.0.1 -t "#" -v
C:\Program Files\mosquitto>
C:\Program Files\mosquitto>mosquitto_pub -h 127.0.0.1 -t arduino/d2/ -m "i"
C:\Program Files\mosquitto>
1658218377: Sending PINGRESP to auto-24BF5A45-623F-BA18-C4D2-65C0E96AE53C
1658218422: New connection from 127.0.0.1:59522 on port 1883.
1658218422: New client connected from 127.0.0.1:59522 as auto-27D9E42E-E2F1-63E7-E2A5-6BA7BC0080D8 (p2, c1, k60).
1658218422: No will message specified.
1658218422: Sending CONNACK to auto-27D9E42E-E2F1-63E7-E2A5-6BA7BC0080D8 (0, 0)
1658218422: Received PUBLISH from auto-27D9E42E-E2F1-63E7-E2A5-6BA7BC0080D8 (d0, q0, r0, m0, 'arduino/d2/', ... (1 bytes))
1658218422: Sending PUBLISH to auto-24BF5A45-623F-BA18-C4D2-65C0E96AE53C (d0, q0, r0, m0, 'arduino/d2/', ... (1 bytes))
1658218422: Received DISCONNECT from auto-27D9E42E-E2F1-63E7-E2A5-6BA7BC0080D8
1658218422: Client auto-27D9E42E-E2F1-63E7-E2A5-6BA7BC0080D8 disconnected.