https://blog.csdn.net/weixin_43850980/article/details/122217933

MQTT安装

发送订阅terminal
mosquitto_pub -t "test" -m "msssss测试内容"
接收订阅terminal
mosquitto_sub -v -t "test/#"


MQTT的工作机制与http不同,服务器只是起着一个中转站的功能。每个客户端,都可以把消息通过服务器广播给所有其他客户端。Mqtt内称为订阅与发布:

订阅:客户端向服务器登记要订阅某主题,后续有以该主题发布的消息时,就会发给该客户端

发布:客户端向服务器发送一条消息,并说明要发布的主题,服务器就会将该消息广播给所有订阅了该主题的客户端

mosquitto是一款开源的mqtt服务器(mqtt协议内称为broker),由eclipse推出,简单易用。本文就是介绍他的安装步骤

1.安装
Ubuntu下不需要去官网下载源码进行编译,直接用apt命令安装即可

sudo apt install mosquitto
sudo apt install mosquitto-clients
第一条命令是安装mosquito本体,第二条是安装一个mqtt客户端软件

2.运行
下载后即可使用开始运行, 默认不需账号密码即可连接,默认使用1883端口。后面会介绍怎么修改配置。

sudo service mosquitto start #启动服务

sudo service mosquitto stop #停止服务

sudo service mosquitto restart #重启服务

3. 使用命令进行测试
我们先开启两个命令行窗口,一个发,一个收。

使用sub命令订阅主题,并进入接收状态,

mosquitto_sub –v -t "主题"
可选:-h 指定服务器ip地址

-u 指定登陆用的用户名

-P 指定登陆密码

使用pub命令发布内容,所有订阅该主题的客户端都会收到

mosquitto_pub -t "主题" -m "内容"
可选:-h 指定服务器ip地址

-u 指定登陆用的用户名

-P 指定登陆密码

测试情况如下图:

 

Mosquito配置
1 创建配置文件
配置是通过编写配置文件进行的。系统默认使用的配置文件是/etc/mosquitto/mosquitto.conf,

mosquitto.conf文件内申明了,所有存放在目录下的后缀名为.conf的文件,都会成为配置文件。既然官方都推荐将配置文件都放到那。

那我们新建一个my.conf文件存放到/etc/mosquitto/conf.d/路径下

sudo vim /etc/mosquitto/conf.d/my.conf
2 配置
完整的配置文件示例,存放在/usr/share/doc/mosquitto/examples/路径下,,可配置的项目很多,这里我们只配置启用几个常用的。

将于以下内容存放到上一步创建的my.conf文件中

#修改端口
port 1800

# 不允许匿名访问,需要使用账号密码才能连接服务器
allow_anonymous false

# 指定要使用的账号密码文件,需手动创建该文件
password_file /etc/mosquitto/pwfile

# 指定权限控制文件存放路径,需手动创建该文件
acl_file /etc/mosquitto/aclfile
3 添加用户
用touch命令创建文件,用于存储用户密码,这个路径是上一步指定的,你可以修改成别的

sudo touch /etc/mosquitto/pwfile
密码是加密存储的,需要使用mosquitto_passwd命令来创建账号。

以下命令的功能是创建user_pc这个用户,并将密码存储到指定的pwfile文件内,输入以下命令后会要求你输入密码。

sudo mosquitto_passwd /etc/mosquitto/pwfile user_pc
4 设置用户权限
先创建存放用户权限的文件,这个路径是写在my.conf内的,你可以修改成别的

sudo vim /etc/mosquitto/aclfile
权限文件示例如下,a/#代表以a/开头的所有主题,如a/test,a/b/c/d

#用户 user_pc
#只能发布 test/#
#只能订阅 a/#
#可以订阅与发布 b/#
user user_pc
topic write test/#
topic read a/#
topic b/#

#用户a只能发布 a/#
user a
topic write a/#

#所有用户都可以发布hhh/#
pattern write hhh/#

5 重启服务
sudo service mosquitto restart
————————————————

原文链接:https://blog.csdn.net/weixin_43850980/article/details/122217933