物联家居第四章:传输协议--mqtt配置与测试
Posted 熟知宇某
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了物联家居第四章:传输协议--mqtt配置与测试相关的知识,希望对你有一定的参考价值。
日记:现在是2021年6月13日 11:51:20
目录
一、安装
相关依赖:
#libssl-dev libssl-dev是OpenSSL通用库,是一种为传输敏感数据而提出的协议;
#uuid-dev主要用于通用唯一识别码;
#cmake是一个跨平台的安装(编译)工具(如果在以前安装过则可以不安装)。
sudo apt-get install libssl-dev
sudo apt-get install uuid-dev
sudo apt-get install cmake
下载mosquitto:
下载mosquitto安装包:
wget http://mosquitto.org/files/source/mosquitto-1.6.5.tar.gz
解压:
tar zxfv mosquitto-1.6.5.tar.gz
编译和安装:
make && make install
安装完成,创建用户、密码:
#mqtt为用户名:
mosquitto_passwd -c /etc/mosquitto/pwfile mqtt
然后根据提示输入密码:
Password:
Reenter password:
现在进入mqtt文件目录:
cd /etc/mosquitto/
由于mqtt启动需要读取配置文件,这里把example配置文件改为mosquitto.conf
mv mosquitto.conf.example mosquitto.conf
以后有特殊的配置,可以在mosquitto.conf配置,启动方式:
mosquitto -c /etc/mosquitto/mosquitto.conf
可能会遇到的问题:
在启动mosquitto的时候,可能会出现找不到libmosquitto.so.1的情况
先找到安装包下的这个文件
#home是你下载mosquitto时的下载路径。
find /home -name libmosquitto.so.1
移动至mosquuitto的系统动态库中:
cp /home/mosquitto-1.6.5/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
#或者软链过去也行:
#ln -s /home/mosquitto-1.6.5/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
二、测试
1、匿名模式
订阅主题消息:
# -h为指定ip地址,-t为订阅的主题
mosquitto_sub -h localhost -t test/hass
发布主题消息:
mosquitto_pub -h localhost -t test/hass -m "Hello, i m szymou"
2、用户模式
修改配置文件:
vim /etc/mosquitto/mosquitto.conf
找到allow_anonymous和password_file,改为以下:
重新mosquitto,新增用户和密码:
#abc是用户名
mosquitto_passwd -c /etc/mosquitto/pwfile abc
此时如果像第一步的匿名模式订阅/发布主题消息会提示:
Connection error: Connection Refused: not authorised
这是因为mosquitto刚配置了用户权限,所以订阅/发布主题消息需要如下操作:
订阅主题消息:
# -h为指定ip地址,-t为订阅的主题,-u为用户,-P为密码
mosquitto_sub -h localhost -t top -u abc -P 123456
发布主题消息:
mosquitto_pub -h localhost -t top -u abc -P 123456 -m "Hello, i m szymou"
3、指定用户只能订阅指定的主题
修改配置文件:
vim /etc/mosquitto/mosquitto.conf
找到acl_file,取消注释,输入配置文件aclfile路径:
编辑aclfile,指定用户abc只能订阅/发布主题为topp的消息:
重启mosquitto,尝试订阅主题为top的消息:
/etc/mosquitto# mosquitto_sub -h localhost -t top -u abc -P 123456
然后连续发布主题为top的消息,发现订阅窗口没有收到消息:
尝试订阅主题为topp的消息:
/etc/mosquitto# mosquitto_sub -h localhost -t topp -u abc -P 123456
然后连续发布主题为topp的消息,发现订阅窗口收到消息:
日记:当前时间2021年6月13日 19:41:46
以上是关于物联家居第四章:传输协议--mqtt配置与测试的主要内容,如果未能解决你的问题,请参考以下文章