mqtt学习记录

目录

  • 1 匿名登录
  • 2 ⽤户名密码登录,配置接收的主题
    • mosquitto 配置文件修改
    • 添加⽤户信息
    • 添加topic和⽤户的关系
    • 登录演示
  • 3 遗嘱机制

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

修改里面的内容如下:
mqtt学习记录_第1张图片

添加⽤户信息

添加⽤户名 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/#

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

登录演示

mqtt学习记录_第2张图片

3 遗嘱机制

以前没有接触过,先了解下,示意图如下:mqtt学习记录_第3张图片
正常断开:当客户端正常断开连接时,会向服务端发送DISCONNECT报文,服务端接收到该报文后,就
知道,客户端是正常断开连接,而并非意外断开连接。

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

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

。。。 更新 中

你可能感兴趣的:(#,mqtt,学习)