MQTT 服务部署
部署环境:
Contos7
1、安装必备软件 :
yum install gcc-c++ cmake openssl-devel -y
2、下载mosquitto : (先cd到想安装的目录下)
wget http://mosquitto.org/files/source/mosquitto-1.6.8.tar.gz
3、解压 编译 安装 :
tar -zxvf mosquitto-1.6.8.tar.gz
cd mosquitto-1.6.8
make
sudo make install
4、创建软连接:
sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
sudo ldconfig
5、创建用户和用户组:
sudo groupadd mosquitto
sudo useradd -g mosquitto mosquitto -s /sbin/nologin
6、启动 查看 关闭 程序
启动 mosquitto -c /home/zhujiasheng/mqtt/mosquitto-1.6.8/mosquitto.conf -d
查看 ps -aux | grep mosquitto
关闭 kill 相应的pid进程就行
7、Mosquitto参数说明
mosquitto_pub 命令参数说明
-d 打印debug信息
-f 将指定文件的内容作为发送消息的内容
-h 指定要连接的域名 默认为localhost
-i 指定要给哪个clientId的用户发送消息
-I 指定给哪个clientId前缀的用户发送消息
-m 消息内容
-n 发送一个空(null)消息
-p 连接端口号
-q 指定QoS的值(0,1,2)
-t 指定topic
-u 指定broker访问用户
-P 指定broker访问密码
-V 指定MQTT协议版本
--will-payload 指定一个消息,该消息当客户端与broker意外断开连接时发出。该参数需要与--will-topic一起使用
--will-qos Will的QoS值。该参数需要与--will-topic一起使用
--will-retain 指定Will消息被当做一个retain消息(即消息被广播后,该消息被保留起来)。该参数需要与--will-topic一起使用
--will-topic 用户发送Will消息的topic
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 打印消息
--will-payload 指定一个消息,该消息当客户端与broker意外断开连接时发出。该参数需要与--will-topic一起使用
--will-qos Will的QoS值。该参数需要与--will-topic一起使用
--will-retain 指定Will消息被当做一个retain消息(即消息被广播后,该消息被保留起来)。该参数需要与--will-topic一起使用
--will-topic 用户发送Will消息的topic
8、本地测试发布 订阅
订阅 mosquitto_sub -t topic
发布 mosquitto_pub -t topic -m "发布内容"
9、修改默认配置
1、关闭匿名用户登录
找到配置文件路径 allow_anonymous false
2、设置用户密码文件路径
就在匿名配置下面一点 password_file /etc/mosquitto/pwfile.example
3、创建自定义用户
mosquitto_passwd -c /etc/mosquitto/pwfile.example test
之后自动弹出密码和确认密码,输入即可。(注意第二次创建用户时不用加 -c 如果加 -c 会把第一次创建的用户覆盖。)
10、非匿名访问
订阅者 mosquitto_sub -p 1883 -u test -P test123 -t topic
发布者 mosquitto_pub -p 1883 -u test -P test123 -t topic -m "我来了"