MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的”轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。

MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。

https://www.runoob.com/w3cnote/mqtt-intro.html

Deploy

使用docker部署

docker_run.sh

1
2
3
4
5
6
7
8
docker stop mqtt
docker rm mqtt
docker run --name=mqtt -d \
--privileged \
-p 1883:1883 -p 9001:9001 \
-v $PWD/data:/mosquitto/data \
-v $PWD/logs:/mosquitto/log \
eclipse-mosquitto

docker-compose.yml部署

1
2
3
4
5
6
7
8
9
10
11
12
13
14
version: "3"

services:
mqtt:
image: eclipse-mosquitto
container_name: mqtt
#restart: always
volumes:
#- $PWD/config:/mosquitto/config
- $PWD/data:/mosquitto/data
- $PWD/log:/mosquitto/log
ports:
- 1883:1883
- 9001:9001

Command client命令行

1
2
3
4
5
6
7
8
docker exec -it mqtt sh

# 查看文档
mosquitto_sub --help
mosquitto_pub --help

# 发送
mosquitto_pub -t topic_test -m hello

新开一个client,接受信息

1
mosquitto_sub -t topic_test

Client

可以使用客户端工具,显示更加方便

源码及下载https://github.com/emqx/MQTTX/releases/tag/v1.8.0

可以配置官方的地址

broker.emqx.io, 1883

image-20220721103929142

点击connect,测试是否可以连接成功

链接成功后,填写topic就可以发生测试信息了。

image-20220721112300373

Demo

也可以使用代码测试

https://blog.csdn.net/kuanggudejimo/article/details/107501805

参考文章

https://www.runoob.com/w3cnote/mqtt-intro.html

https://mosquitto.org/

https://projects.eclipse.org/projects/iot.mosquitto

https://blog.csdn.net/Navyyy/article/details/122398020

Mosquitto 搭建及配置

MQTT X 使用指南