mosquitto使用與常用配置


為了方便演示,我這里就用windows環境下安裝的mosquitto進行操作,操作方式和linux系統下是一樣的。

一、windows安裝mosquitto

  1. 下載mosquitto
    mosquitto官網:https://mosquitto.org/download/

    下載完成后,雙擊安裝即可

  2. 安裝完成后的文件目錄

  3. 添加環境變量

  4. 配置Mosquitto賬號密碼
    在cmd中輸入

# 用戶名
mosquitto_passwd -c pwfile 用戶名

# 密碼
mosquitto_passwd -c pwfile bees

mosquitto使用

在Windows PowerShell中執行一下命令

# 啟動服務器
.\mosquitto.exe -c mosquitto.conf -v

# 訂閱者
.\mosquitto_sub.exe -t "temp"

# 發布者
.\mosquitto_pub.exe -t "temp" -m "aaaaaaaaa"
  1. mosquitto服務器使用

  2. mosquitto訂閱者使用

  3. mosquitto發布者使用

  4. 常用選項

  • -d, --debug;
    開啟debug選項

  • -f, --file
    把一個文件的內容做為消息的內容發送。經測試,支持txt文件,不支持doc等其他形式文件。

  • -h, --host
    連接的域名,默認是localhost

  • -i, --id
    客戶端的ID號,如果沒有指定,默認是mosquitto_pub_加上客戶端的進程id,不能和--id_prefix同時使用。

  • -I, --id-prefix
    指定客戶端ID的前綴,與客戶端的進程ID連接組成客戶端的ID,不能喝--id同時使用。

  • -l, --stdin-line
    從總段讀取輸入發送消息,一行為一條消息,空白行不會被發送。

  • -m, --message
    從命令行發送一條消息,-m后面跟發送的消息內容。

  • -n, --null-message
    發送一條空消息。

  • -p, --port
    連接的端口號,默認是1883.

  • -P, --pw
    指定密碼用於代理認證,使用此選項時必須有有效的用戶名。

  • -q, --qos
    指定消息的服務質量,可以為0,1,2,默認是0.

  • --quiet
    如果指定該選項,則不會有任何錯誤被打印,當然,這排除了無效的用戶輸入所引起的錯誤消息。

  • -r, --retain
    如果指定該選項,該條消息將被保留做為最后一條收到的消息。下一個訂閱消息者將能至少收到該條消息。

  • -s, --stdin-file
    從標准輸入接收傳輸的消息內容,所有輸入做為一條消息發送。

  • -t, --topic
    指定消息所發布到哪個主題。

  • -u, --username
    指定用戶名用於代理認證。

  • --will-payload
    如果指定該選項,則萬一客戶端意外和代理服務器斷開,則該消息將被保留在服務端並發送出去,該選項必須同時用--will-topic指定主題。

  • --will-qos
    指定Will的服務質量,默認是0.必須和選項 --will-topic同時使用.

  • --will-retain
    如果指定該選項,則萬一客戶端意外斷開,已被發送的消息將被當做retained消息。必須和選項 --will-topic同時使用.

  • --will-topic
    指定客戶端意外斷開時,Will消息發送到的主題。

三、mosquitto常用配置

在mosquitto.conf文件中更改默認配置

# 允許匿名用戶
#allow_anonymous true

# 綁定ip和端口
#listener 1883 192.168.2.100
#listener 1883 0.0.0.0

# 允許的最大連接數,-1表示沒有限制
#max_connections -1

注意:‘bind_address’和‘port’已經過期,需要使用listener

常見問題

  1. 默認端口被占用

    解決辦法
    1)查找被占用的端口

    // 查找使用的端口
    netstat -ano
    // 查找指定的端口
    netstat -ano |findstr 1883
    

    如下圖所示:

    2)停用端口

    // 停用端口
    taskkill -PID 4916 -F
    // 查看占用此端口的進程,在任務管理器中強制結束
    tasklist|findstr 4916
    

    如下圖所示:

參考文獻

mosquitto 用法與簡介:http://blog.chinaunix.net/uid-29616823-id-4852120.html
MQTT服務器(Broker) - mosquitto配置文件詳解:https://www.cnblogs.com/shuiche/p/12630591.html
Mosquitto 使用說明:https://www.cnblogs.com/yueli/p/7478543.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM