【物联家居】第四章:传输协议--mqtt配置与测试

8 篇文章 0 订阅
4 篇文章 0 订阅
本文详细介绍了如何在Ubuntu系统中安装mosquitto MQTT代理,包括安装依赖、下载与编译mosquitto、创建用户和密码、配置及测试不同模式(匿名、用户和指定主题订阅)。此外,还解决了启动时可能出现的问题。
摘要由CSDN通过智能技术生成

日记:现在是2021年6月13日 11:51:20

【物联家居】总目录

目录

一、安装

二、测试

1、匿名模式

2、用户模式

3、指定用户只能订阅指定的主题


一、安装

相关依赖:

#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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值