1. MQTT プロトコル
MQTT は TCP/IP上で「1対多の通信」ができる軽量プロトコルです。
詳細は別記事に任せますが、簡単なMQTTネットの構成は以下です。
- Publisher は Broker にメッセージを転送します
-
Breaker は接続された Subscriber に Publisher から送信されたメッセージを転送します
- Publisher と Subscriber の対応は同じ Topic を指定することで実現します

エンド・エンドの送達確認は具備されません。
Broker は Publisher から送信された際に接続されている Subscriber へ転送するだけです。
暗号化や認証などはサポートしていますが、Kafka の高機能なものではなく、極めて軽量なものです。
2. RemoNavi を使った MQTTネットワークの構築
最も基本的な構成は以下です。
RemoNavi Receiver (Docker版) には mosquitto (MQTT Broker)がインストールされ、稼働していますので、利用者は MQTT Publisher | Subscriber のクライアントのみ用意します。

2.1. MQTT Publisher | Subscriber のクライアントの準備
Linuxベースあるいは Windows WSL (Ubuntu) 環境であれば mosquitto-clients パッケージをインストールすることで、 MQTT Publisher | Subscriber のクライアントを利用できるようになります。
sudo apt-get install -y mosquitto-clients
2.2. MQTT Broker の 起動設定
RemoNavi Receiver Dockerにてインストールされ、稼働していますので、何も設定する必要はありません。
もし、稼働方法や MQTT の設定を変更する場合は以下を参考に、利用者様にて実施してください。
# RemoNavi Receiver にアクセス
docker exec -it remonavi-receiver /bin/bash
# Receiver Docker 内
# <mosquitto の稼働設定>
# MQTT Broker は 0.0.0.0:1883 の平文でListenしています
# 認証は anonymous を許容
#
vi /etc/supervisor/conf.d/supervisord.conf
[program:mqtt_broker]
command=/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
autostart=true
autorestart=true
(※) MQTT Brokerの設定を変更する場合は、/etc/mosquitto/mosquitto.conf で指定します
(※) 必要ない場合は、上記を削除します。
2.3. RemoNavi Receiver の起動
MQTT Broker の Listen ポートを公開して起動します。
docker run -d -p 9080:80 -p 1883:1883 --name remonavi-receiver --privileged remonavi-receiver:1.0
(※) -p 1883:1883 が MQTT Listenポートです。
RemoNavi 中継路は暗号化通信のため、MQTTで 暗号化する必要はありません
3. RemoNavi を使って MQTT メッセージを送受信
Topoc [remonavi] で MQTTメッセージの送受信をします。
検証を簡略化するために、以下とします。
- Publisher と RemoNavi Sender は同一マシン上に配備
- Subscriber と RemoNavi Receiver は同一マシン上に配備
【操作手順】
-
RemoNavi Gateway にて中継経路を作成
- 接続先ホスト : 127.0.0.1 (Receiver Docker内の MQTT Brokerの IPアドレス)
- 接続先ポート : 1883 (Receiver Docker内の MQTT Brokerの Listenポート番号)
- 接続種別: Receiver経由
-
MQTT送信側の設定
- RemoNavi Sender を起動
- RemoNavi Sender で MQTT中継経路の利用設定(ポート番号 [9123] を指定)
-
MQTT受信側の設定
- RemoNavi Receiver を起動
- RemoNavi Receiver でMQTT中継経路の利用設定
-
いざ送受信!
- MQTT Subscriber を Broker に接続して受信待ち
mosquitto_sub -t remonavi (*) 受信すると、Publisher からのメッセージが表示されます。
- MQTT Publisher から Broker に向けてメッセージ送信
mosquitto_pub -p 9123 -t remonavi -m "test message"
- MQTT Subscriber を Broker に接続して受信待ち