本文介绍了MQTT测试环境的搭建过程和测试时使用的命令,对需要使用MQTT协议的相关开发人员有一定的帮助。
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)。
MQTT是 ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。
MQTT工作在TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的协议。
MQTT主页:MQTT - The Standard for IoT Messaging
MQTT协议5.0中文版:MQTT协议5.0中文版 | MQTT中文网
MQTT协议3.1.1中文版:MQTT 3.1.1 协议中文版 | MQTT中文网
MQTT协议中有三种身份:发布者(Publish)、代理服务器(Broker)、订阅者(Subscribe),
其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。
MQTT的平台主要有Mosquitto、VerneMQ、EMQTT等几种,本文主要介绍Mosquitto的使用
Mosquitto源码下载:https://mosquitto.org/files/source/mosquitto-2.0.15.tar.gz
Mosquitto开源仓库:https://github.com/eclipse/mosquitto
1 PC机安装Mosquitto
安装包下载页面:Download | Eclipse Mosquitto
对于Windows版本,直接安装软件
对于Linux版本,可以自行安装在虚拟机中
作者尝试过选择Linux版本安装,但是后续操作比较复杂
最终本文选择安装Windows版本的Mosquitto
2 PC机MQTT环境测试
2.1 启动代理服务器
打开新的终端,进入mosquitto安装目录,
mosquitto -c mosquitto.conf
参数-c:指定配置文件 ,此处为mosquitto.conf
2.2 启动订阅者
打开新的终端,进入mosquitto安装目录,
mosquitto_sub -v -t topicTest01
参数-v:打印更多调试信息
参数-t:指定主题,此处为topicTest01
2.3 启动发布者
打开新的终端,进入mosquitto安装目录,
mosquitto_pub -t topicTest01 -m TestMessage
参数-t:指定发布的主题,此处为topicTest01
参数-m:指定消息内容,此处为TestMessage
此时,在订阅者的终端窗口中,就可以看到发布者发送的消息
3 公共的MQTT测试服务器
MQTT 服务器信息
- Broker: broker.emqx.io
- TCP 端口: 1883
- WebSocket 端口: 8083
- SSL/TLS 端口: 8883
- WebSocket Secure 端口: 8084
- CA 证书文件:broker.emqx.io-ca.crt
4 Linux下的MQTT环境搭建
MQTTX软件(发布、订阅):MQTTX 下载
EMQX软件(服务器):下载 EMQX
使用帮助:快速开始 | EMQX 5.2 文档