赞
踩
目录
MQTT是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议。它最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。
本次测试软硬件环境环境如下:
服务器:树莓派3B linux-4.9
客户端:Ubuntu 18.04.4 LTS
MQTT协议用于客户端和服务器端通讯,MQTT协议中有三种身份:
发布者(Publish)
代理(Broker)
订阅者(Subscribe)
它们的对应关系如下表:
使用者 | 身份类型 | 备注 |
服务器 | 代理 | |
客户端 | 发布者、订阅者 | 消息发布者可以同时是订阅者 |
对应关系图如下:
MQTT传输的消息分为:
主题:消息的类型,订阅者订阅后,就可以收到该主题的消息内容(负载);
负载:消息的内容,是指订阅者具体要使用的内容。
关于MQTT协议详细的介绍可查看官网:https://mqtt.org/
- sudo apt-get install libssl-dev
- sudo apt-get install uuid-dev
- sudo apt-get install cmake
打开链接https://mosquitto.org/files/source/,定位到mosquitto-1.6.9.tar.gz,下载到本地并解压。
tar -zxvf mosquitto-1.6.9.tar.gz -C /home/pi/
- cd /home/pi/mosquitto-1.6.9
- make
- sudo make install
复制/etc/mosquitto/mosquitto.conf.example并重命名为/etc/mosquitto/mosquitto.conf。
cp /etc/mosquitto/mosquitto.conf.example /etc/mosquitto/mosquitto.conf
修改/etc/mosquitto/mosquitto.conf,使能mosquitto用户
- # /etc/mosquitto/mosquitto.conf
-
- user mosquitto
adduser mosquitto
如未正确配置2.4.1和2.4.2,启动mosquitto后会出现错误:
Error: Invalid user 'mosquitto'.
启动订阅或发布时找不到动态库:libmosquitto.so.1,需要创建动态链接装载程序。
- sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
-
- sudo ldconfig
mosquitto -c /etc/mosquitto/mosquitto.conf -d
参数介绍:
-c:指定特定配置文件启动
-d:后台运行
mosquitto_sub -h 192.168.1.103 -p 1883 -u daniel -P 123456 -t "test"
参数介绍:
-h:服务器主机,默认localhost
-t:指定主题
-u:用户名
-P:密码
-i:唯一的客户端ID
mosquitto_pub -h localhost -p 1883 -u daniel -P 123456 -t "test" -m "hello"
参数介绍:
-h:服务器主机,默认localhost
-t:指定主题
-u:用户名
-P:密码
-i:唯一的客户端ID
-m 发布的消息内容
订阅和发布演示截图如下:
MQTT是一种轻量级的开放式消息传递协议,广泛的覆盖面,涵盖医疗保健、汽车和其他使用物联网应用,搭建MQTT只是我的物联网应用的第一步,后续将介绍移植MQTT到RK3568上实现温度数据监测功能。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。