mqtt学习记录

1 匿名登录

⾸先打开三个终端,

  1. 启动代理服务:mosquitto -v
    -v 详细模式 打印调试信息
    默认占⽤:1883端⼝
  2. 订阅主题:mosquitto_sub -v -t hello
    -t 指定订阅的主题,主题为:hello
    -v 详细模式 打印调试信息
  3. 发布内容:mosquitto_pub -t hello -m world
    -t 指定订阅的主题,主题为:hello
    -m 指定发布的消息的内容

2 ⽤户名密码登录,配置接收的主题

mosquitto 配置文件修改

Mosquitto服务器的配置⽂件为/etc/mosquitto/mosquitto.conf,关于⽤户认证的⽅式和读取的配置都
在这个⽂件中进⾏配置。
allow_anonymous允许匿名
password_file密码⽂件
acl_file访问控制列表

cd 到 /etc/mosquitto
先拷⻉mosquitto.conf.example⼀份为mosquitto.conf

sudo cp mosquitto.conf.example mosquitto.conf

修改里面的内容如下:
在这里插入图片描述

添加⽤户信息

添加⽤户名 0voice_mqtt, 密码123456

sudo mosquitto_passwd -c /etc/mosquitto/pwfile 0voice_mqtt  

输入两次密码

⾃动⽣成密码⽂件:/etc/mosquitto/pwfile , 对应mosquitto.conf配置的“password_file
/etc/mosquitto/pwfile”路径。

添加topic和⽤户的关系

cd 到 /etc/mosquitto

sudo cp aclfile.example aclfile

在aclfile上末尾加上如下内容:

# write发布权限, mtpic/#代表mtopic这个前缀的主题, 以/分割前缀
topic write mtopic/#
# read订阅权限, mtpic/#代表mtopic这个前缀的主题, 以/分割前缀
user 0voice_mqtt
topic read mtopic/#

而且这里限制了接收的主题

登录演示

在这里插入图片描述

3 遗嘱机制

以前没有接触过,先了解下,示意图如下:在这里插入图片描述
正常断开:当客户端正常断开连接时,会向服务端发送DISCONNECT报文,服务端接收到该报文后,就
知道,客户端是正常断开连接,而并非意外断开连接。

意外断线:当服务端在没有收到DISCONNECT报文的情况下,发现客户端“心跳”停止了,这时服务端就
知道客户端是意外断线了。

  1. 因网络故障或网络波动,设备在保持连接周期内未能通讯,连接被服务端关闭
  2. 设备意外掉电
  3. 设备尝试进行不被允许的操作而被服务端关闭连接,例如订阅自身权限以外的主题等

。。。 更新 中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值