Mosquitto 資料一覧
2016/11/11更新
対応バージョン: 1.4.8

インストール
Broker(mosquitto)とPublisher/Subscriber(mosquitto-clients)をインストールする。
% sudo apt install mosquitto mosquitto-clients
インストールが終わるとBrokerは自動的に起動する。
% systemctl status mosquitto ● mosquitto.service - LSB: mosquitto MQTT v3.1 message broker Loaded: loaded (/etc/init.d/mosquitto; bad; vendor preset: enabled) Active: active (running) since 金 2016-11-11 01:15:22 JST; 1min ago Docs: man:systemd-sysv-generator(8) CGroup: /system.slice/mosquitto.service └─10706 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
Pub/Sub通信
SubscriberをBrokerに接続しておき、Publisherからメッセージを送信してSubscriberが受信できることを確認する。ここではQoS = 0(デフォルト)、トピック名を「test」とする。
Subscriber接続
mosquitto_subを使用する。-d(デバッグモード)と-t(トピック)を指定してBrokerに接続し、Publisherからのメッセージを待ち受ける。
% mosquitto_sub -d -t test Client mosqsub/11226-zero sending CONNECT Client mosqsub/11226-zero received CONNACK Client mosqsub/11226-zero sending SUBSCRIBE (Mid: 1, Topic: test, QoS: 0) Client mosqsub/11226-zero received SUBACK Subscribed (mid: 1): 0
Publisher接続 & メッセージ送信
mosquitto_pubを使用する。-d(デバッグモード)と-t(トピック)を指定したうえでBrokerに-m(メッセージ)を送信する。
% mosquitto_pub -d -t test -m "hello" Client mosqpub/11242-zero sending CONNECT Client mosqpub/11242-zero received CONNACK Client mosqpub/11242-zero sending PUBLISH (d0, q0, r0, m1, 'test', ... (5 bytes)) Client mosqpub/11242-zero sending DISCONNECT
待ち受けていたSubscriber側で以下の出力が得られればOKである。
Client mosqsub/11226-zero received PUBLISH (d0, q0, r0, m0, 'test', ... (5 bytes)) hello
Subscriber側は60秒おきにBrokerの生存確認を行うのでその際に以下が出力される。
Client mosqsub/11226-zero sending PINGREQ Client mosqsub/11226-zero received PINGRESP
待ち受け状態のmosquitto_subはCtrl + cで終了させる。
関連資料・記事
参考サイト
MQ Telemetry Transport (MQTT) V3.1 プロトコル仕様 (IBM)
MQTTについて詳しく知る (sango)
MQTTで始めるIoTデバイスの作り方 第1回:「MQTT」を知り「Mosquitto」を導入する (MONOist)
MQTTで始めるIoTデバイスの作り方 第2回:MQTTのプロトコルを解析して挙動を理解する (MONOist)
MQTTで始めるIoTデバイスの作り方 第3回:ESP8266でMQTT (MONOist)
Mosquitto技術情報 (Qiita)
MQTT技術情報 (Qiita)