搭建局域网MQTT通信
最近在做一个测试设备需要把测试数据存起来,讨论后决定添加8266通过mqtt传到一个电脑上进行保存。开始是准备用云服务的broker,后续考虑到都在一个局域网下,尝试直接在局域网中实现通信,这样数据更安全,而且不用花钱租服务器。。。
关于8266的配置请看:ESP8266实现mqtt_esp8266 mqtt-CSDN博客
首先需要清楚MQTT通信不是直接的点对点通信,他是需要一个中转服务器broker的。
MQTT结构大致为
[Publisher] --> (MQTT Broker) <-- [Subscriber]
- Publisher:发布消息到某个 Topic。
- Subscriber:订阅一个或多个 Topic,接收相关消息。
- Broker:消息中枢,负责接收、路由和分发消息。常见实现包括:
- Mosquitto(轻量开源)
- EMQX(高性能,支持百万级连接)
- HiveMQ
- AWS IoT Core、Azure IoT Hub(云平台集成)
所以想要在本地进行MQTT通信就需要在局域网内搭建一个broker。这里选择的EMQX
安装 EMQX 企业版 | EMQX 6.0 文档
因为我这是window系统,所以这里安装了一个dockerdesktop(Docker: Accelerated Container Application Development)来实现容器功能。
应该是在docker中通过指令应该就能直接安装emqx但是我这一直下载失败所以选择直接下好安装包直接安装。
然后在PowerShell中先cd到安装包位置,然后执行
docker load -i emqx-enterprise-docker-sf-amd64.tar.gz
//验证镜像是否加载成功
docker images
//运行EMQX容器
docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 18083:18083 emqx/emqx-enterprise:6.0.1-sf
-
访问EMQX管理界面:
打开浏览器,访问http://localhost:18083-
用户名:
admin -
密码:
public
-

这样只需要有发送设备、接收设备和broker服务器都在一个局域网下,就可以进行mqtt通信了
