1. 添加 EPEL 軟件庫(如已安裝,請跳過此步驟)
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
遇到選擇項輸入y即可。
2. 查看EPEL安裝結果
yum repolist all | grep enabled
3. 安裝 Mosquitto
查找 mosquitto 軟件包:yum list all | grep mosquitto
查看 mosquitto 信息: yum info mosquitto
安裝 mosquitto 軟件包: yum install mosquitto
查看安裝結果:yum list installed | grep mosquitto
4. 測試Mosquitto
啓動 mosquitto 主程序:mosquitto
新建一個ssh窗口;訂閱》執行命令:mosquitto_sub -t test
新建一個ssh窗口;發佈》執行命令:mosquitto_pub -t test -h localhost -m "hello, world"
可以看到訂閱窗口收到:hello, world
5.開機自啓Mosquitto
查找 mosquitto 服務:find / -iname mosquitto* | grep service
設置 mosquitto 服務:systemctl enable mosquitto.service
啓動 mosquitto 服務:systemctl start mosquitto.service
查看 mosquitto 狀態:systemctl status mosquitto.service
查看進程:ps -aux | grep mosquitto
重啓 CentOS:reboot,查看 mosquitto 服務是否自動啓動:systemctl list-units | grep 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