前提
- OS: Windows 11 Pro 22H2 ビルド 22621.963
- Docker Desktop: version 4.15.0 (93002)
- 使用イメージ: rabbitmq:3.11
イメージの pull
docker pull rabbitmq:3.11
プラグインの一覧確認
docker run -it --rm --name rabbitmq rabbitmq:3.11 rabbitmq-plugins list
プラグイン有効化設定ファイルの作成
プラグイン有効化設定のためのファイルを作成し、
rabbitmq_mqtt
と rabbitmq_web_mqtt
を有効にする設定を記述。
echo "[rabbitmq_mqtt,rabbitmq_web_mqtt]." > enabled_plugins
MQTT over WebSocket の設定
今回は、エンドポイントのパスと、待ち受けポート番号を変更する。
echo "web_mqtt.ws_path = /mqtt" > rabbitmq.conf
echo "web_mqtt.tcp.port = 9090" >> rabbitmq.conf
RabbitMQ コンテナ起動
作成した設定ファイルを渡しつつ rabbitmq を実行。
docker run -it --rm --name rabbitmq -v "$(pwd)/enabled_plugins:/etc/rabbitmq/enabled_plugins" -v "$(pwd)/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf" -p "9090:9090" rabbitmq:3.11
動作確認
HiveMQ の MQTT WebSocket クライアント を使って、先ほど起動したコンテナへ接続する。
今回は、シークレットモードの FireFox, Google Chrome を使って、
testtopic/1
をサブスクライブしたりパブリッシュしたりしてみた。
はい、上手くできていそう。
以上。