MQTT--mosquitto使用詳解


mosquitto_pub(發布)的用法

用法:

mosquitto_pub [-d] [-h hostname] [-i client_id] [-I client id prefix] [-p port number] [-q message QoS] [--quiet] [-r] { -f file | -l | -m message | -n | -s} [-u username [-P password] ] [ --will-topic topic [--will-payload payload] [--will-qos qos] [--will-retain] ] -t message-topic

  

選項:

-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_sub(訂閱)的用法

用法:

mosquitto_sub [-c] [-d] [-h hostname] [-i client_id] [-I client id prefix] [-k keepalive time] [-p port number] [-q message QoS] [--quiet] [-v] [ -u username [-Ppassword] ] [ --will-topic topic [--will-payload payload] [--will-qos qos] [--will-retain] ] -t message topic ...  

  

命令:

mosquitto_sub 訂閱到主題,接收到消息時打印 
選項:

-c, –disable-clean-session:禁止’clean session’選項,即如果客戶端斷開連接,這個訂閱仍然保留來接收隨后到的QoS為1和2的消息,當改客戶端重新連接之后,它將接收到已排在隊列中的消息。建議使用此選項時,客戶端id選項設為–id

-d, –debug:開啟debug選項

-h, –host:說明所連接到的域名,默認是localhost

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

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

-k, –keepalive:給代理發送PING命令(目的在於告知代理該客戶端連接保持且在正常工作)的間隔時間,默認是60s

-p, –port:說明客戶端連接到的端口,默認是1883

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

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

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

-t, –topic:指定訂閱的消息主題,允許同時訂閱到多個主題

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

-v, –verbose:冗長地打印收到的消息。若指定該選項,打印消息時前面會打印主題名——“主題 消息內容”,否則,只打印消息內容

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

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

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

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

報文種類

1.連接請求(CONNECT)

當一個從客戶端到服務器的TCP/IP套接字連接被建立時,必須用一個連接流來創建一個協議級別的會話。

2.連接請求確認(CONNECTACK)

連接請求確認報文(CONNECTACK)是服務器發給客戶端,用以確認客戶端的連接請求

3.發布報文(PUBLISH)

客戶端發布報文到服務器端,用來提供給有着不同需求的訂閱者們。每個發布的報文都有一個主題,這是一個分層的命名空間,他定義了報文來源分類,方便訂閱者訂閱他們需要的主題。訂閱者們可以注冊自己的需要的報文類別。

4.發布確認報文(PUBACK)

發布確認報文(PUBACK)是對服務質量級別為1的發布報文的應答。他可以是服務器對發布報文的客戶端的報文確認,也可以是報文訂閱者對發布報文的服務器的應答。

5.發布確認報文(PUBREC)

PUBREC報文是對服務質量級別為2的發布報文的應答。這是服務質量級別為2的協議流的第二個報文。PUBREC是由服務器端對發布報文的客戶端的應答,或者是報文訂閱者對發布報文的服務器的應答。

6.發布確認報文(PUBREL)

PUBREL是報文發布者對來自服務器的PUBREC報文的確認,或者是服務器對來自報文訂閱者的PUBREC報文的確認。它是服務質量級別為2的協議流的第三個報文。

7.確定發布完成(PUBCOMP)

PUBCOMP報文是服務器對報文發布者的PUBREL報文的應答,或者是報文訂閱者對服務器的PUBREL報文的應答。它是服務質量級別為2的協議流的第四個也是最后一個報文。

8.訂閱命名的主題(SUBSCRIBE)

訂閱報文(SUBSCRIBE)允許一個客戶端在服務器上注冊一個或多個感興趣的主題名字。發布給這些主題的報文作為發布報文從服務器端交付給客戶端。訂閱報文也描述了訂閱者想要收到的發布報文的服務質量等級。

9.訂閱報文確認(SUBACK)

當服務器收到客戶端發來的訂閱報文時,將發送訂閱報文的確認報文給客戶端。一個這樣的確認報文包含一列被授予的服務質量等級。被授予的服務質量等級次序和對應的訂閱報文中的主題名稱的次序相符。

10.退訂命名的主題(UNSUBSCRIBE)

退訂主題的報文是從客戶端發往服務器端,用以退訂命名的主題。

11.退訂確認(UNSUBACK)

退訂確認報文是從服務器發往客戶端,用以確認客戶端發來的退訂請求報文。

12.Ping請求(PINGREQ)

Ping請求報文是從連接的客戶端發往服務器端,用來詢問服務器端是否還存在。

13.Ping應答(PINGRESP)

Ping應答報文是從服務器端發往Ping請求的客戶端,對客戶端的Ping請求進行確認。

14.斷開通知(DISCONNECT)

斷開通知報文是從客戶端發往服務器端用來指明將要關閉它的TCP/IP連接,他允許徹底地斷開,而非只是下線。如果客戶端已經和干凈會話標志集聯系,那么所有先前關於客戶端維護的信息將被丟棄。一個服務器在收到斷開報文之后,不能依賴客戶端關閉TCP/IP連接。


免責聲明!

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



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