Mosquitto
1、安装
sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
2、更新软件包
sudo apt-get update
3、安装
sudo apt-get install mosquitto -y
4、安装命令行客户端
sudo apt-get install mosquitto-clients -y
5.配置
sudo vim /etc/mosquitto/mosquitto.conf
6、复制内容到文件里面
#添加监听端口(很重要,否则只能本机访问)
listener 1883
pid_file /run/mosquitto/mosquitto.pid
# 消息持久存储
persistence true
#消息持久存储位置
persistence_location /var/lib/mosquitto/
#日志文件
log_dest file /var/log/mosquitto/mosquitto.log
# 其他配置
include_dir /etc/mosquitto/conf.d
#禁止匿名访问,客户端必须使用用户名
allow_anonymous false
# 认证配置
password_file /etc/mosquitto/pwfile
# 权限配置
acl_file /etc/mosquitto/aclfile
7、创建认证文件pwfile
sudo vim /etc/mosquitto/pwfile
8、开启服务
sudo mosquitto_passwd /etc/mosquitto/pwfile yishujun #yishujun 是我当前用户名
9、配置权限aclfile
sudo vim /etc/mosquitto/aclfile
10、配用户发布订阅主题权限
# A发布以test为前缀的主题,订阅以$SYS开头的主题即系统主题
user A
topic write test/#
topic read $SYS/#
# B订阅以test为前缀的主题
user B
topic read test/#
11、启动服务
#-c:指定特定配置文件启动
#-d:后台运行
mosquitto -c /etc/mosquitto/mosquitto.conf -d
12、命令:
- 发布命令 mosquitto_pub
- 订阅命令 mosquitto_sub
- 常用参数:
-c 设定‘clean session’为无效状态,这样一直保持订阅状态,即便是已经失去连接,如果再次连接仍旧能够接收的断开期间发送的消息。
-d 打印debug信息
-h 指定要连接的域名 默认为localhost
-i 指定clientId
-I 指定clientId前缀
-k keepalive 每隔一段时间,发PING消息通知broker,仍处于连接状态。 默认为60秒。
-q 指定希望接收到QoS为什么的消息 默认QoS为0
-R 不显示陈旧的消息
-t 订阅topic
-v 打印消息
-u 用户名
-P 密码
13、订阅
mosquitto_sub -h localhost -t "test/#" -u B
14、发布
mosquitto_pub -h localhost -t "test/abc" -u A -m "How are you?"