如何在 windows 中的 docker 上测试 mqtt?

How to test mqtt on docker in windows?

我已经在 docker 上拉取了 eclipse-mosquitto 镜像。如何通过 docker?

订阅和发布一些消息来测试 mqtt 客户端

以下是我的系统的详细信息:

操作系统:Windows10家

Docker 版本 19.03.1

有人可以指导我如何在 windows 10 中测试 docker 上的 mqtt 的步骤吗?

谢谢

您需要安装一个可以同时进行发布和订阅的 MQTT 客户端。我倾向于使用 Node.JS MQTT 模块,其中包含一个可以同时执行这两项操作的客户端。

您需要先安装 Node.JS。然后做一个:

> npm install mqtt

这将在当前目录的 ./node_modules 目录下安装 MQTT Node.JS 模块。

在此之后,您需要 运行 一个订阅者和一个发布者。您 运行 喜欢的订阅者:

> node ./node_modules/mqtt/mqtt.js sub -t "my/local/#" -h "mqtt-broker-host.home.local" -vv

其中 mqtt-broker-host.home.local 是您的 MQTT 代理容器的 FQDN 或 IP 地址。

在另一个终端会话中,您可以运行 MQTT 发布者:

> node ./node_modules/mqtt/mqtt.js pub -t "my/local/test-topic" -h "mqtt-broker-host.home.local' -m '{"msg": "This is a test" }' 

如果一切正常,您现在应该在 'sub' 终端中看到“这是一个测试”消息。如果没有,请在 'pub' 终端会话中查找任何错误消息。如果有 none,那么您应该查看您的 MQTT Broker 日志文件,看看它认为发生了什么。

您可以使用 MQTT 客户端 docker 容器进行测试。

  • 服务器

启动eclipse-mosquitto容器

docker run --name mq -it -p 1883:1883 -p 9001:9001  eclipse-mosquitto

  • 客户:

然后使用 docker MQTT 客户端

打开另一个终端 window 和 运行 订阅者命令
docker run --rm -it   --link mq   ruimarinho/mosquitto mosquitto_sub -h mq -t '#'

现在打开另一个终端window并发布消息,您将可以在window中看到消息 2.

docker run --rm -it   --link mq   ruimarinho/mosquitto mosquitto_pub -h mq -t home-assistant/switch/1/on -m "Docker pub-subtest message"