目录
前言
一、MQTT协议
二、搭建MQTT服务
2.1 下载依赖库
2.2 下载mosquitto源码
2.3 编译与安装
2.4 配置
2.4.1 使能mosquitto用户
2.4.2 新增mosquitto帐号
2.4.3 创建动态链接装载程序
2.5 启动mosquitto
三、订阅与发布
3.1 订阅主题
3.2 发布消息
总结
前言
MQTT是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议。它最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。
本次测试软硬件环境环境如下:
服务器:树莓派3B linux-4.9
客户端:Ubuntu 18.04.4 LTS
一、MQTT协议
MQTT协议用于客户端和服务器端通讯,MQTT协议中有三种身份:
发布者(Publish)
代理(Broker)
订阅者(Subscribe)
它们的对应关系如下表:
使用者 | 身份类型 | 备注 |
服务器 | 代理 | |
客户端 | 发布者、订阅者 | 消息发布者可以同时是订阅者 |
对应关系图如下:
MQTT传输的消息分为:
主题:消息的类型,订阅者订阅后,就可以收到该主题的消息内容(负载);
负载:消息的内容,是指订阅者具体要使用的内容。
关于MQTT协议详细的介绍可查看官网:https://mqtt.org/
二、搭建MQTT服务
2.1 下载依赖库
sudo apt-get install libssl-dev
sudo apt-get install uuid-dev
sudo apt-get install cmake
2.2 下载mosquitto源码
打开链接https://mosquitto.org/files/source/,定位到mosquitto-1.6.9.tar.gz,下载到本地并解压。
tar -zxvf mosquitto-1.6.9.tar.gz -C /home/pi/
2.3 编译与安装
cd /home/pi/mosquitto-1.6.9
make
sudo make install
2.4 配置
2.4.1 使能mosquitto用户
复制/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
2.4.2 新增mosquitto帐号
adduser mosquitto
如未正确配置2.4.1和2.4.2,启动mosquitto后会出现错误:
Error: Invalid user 'mosquitto'.
2.4.3 创建动态链接装载程序
启动订阅或发布时找不到动态库:libmosquitto.so.1,需要创建动态链接装载程序。
sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
sudo ldconfig
2.5 启动mosquitto
mosquitto -c /etc/mosquitto/mosquitto.conf -d
参数介绍:
-c:指定特定配置文件启动
-d:后台运行
三、订阅与发布
3.1 订阅主题
mosquitto_sub -h 192.168.1.103 -p 1883 -u daniel -P 123456 -t "test"
参数介绍:
-h:服务器主机,默认localhost
-t:指定主题
-u:用户名
-P:密码
-i:唯一的客户端ID
3.2 发布消息
mosquitto_pub -h localhost -p 1883 -u daniel -P 123456 -t "test" -m "hello"
参数介绍:
-h:服务器主机,默认localhost
-t:指定主题
-u:用户名
-P:密码
-i:唯一的客户端ID
-m 发布的消息内容
订阅和发布演示截图如下:文章来源:https://www.toymoban.com/news/detail-495507.html
总结
MQTT是一种轻量级的开放式消息传递协议,广泛的覆盖面,涵盖医疗保健、汽车和其他使用物联网应用,搭建MQTT只是我的物联网应用的第一步,后续将介绍移植MQTT到RK3568上实现温度数据监测功能。文章来源地址https://www.toymoban.com/news/detail-495507.html
到了这里,关于linux下搭建MQTT服务的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!