真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

MQTT遺囑消息(WillMessage)的使用

簡介

當客戶端斷開連接時,發(fā)送給相關的訂閱者的遺囑消息。以下情況下會發(fā)送 Will Message:

成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設,和田縣企業(yè)網(wǎng)站建設,和田縣品牌網(wǎng)站建設,網(wǎng)站定制,和田縣網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,和田縣網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

  • 服務端發(fā)生了I/O 錯誤或者網(wǎng)絡失敗;
  • 客戶端在定義的心跳時期失聯(lián);
  • 客戶端在發(fā)送下線包之前關閉網(wǎng)絡連接;
  • 服務端在收到下線包之前關閉網(wǎng)絡連接。

遺囑消息一般通過在客戶端 CONNECT 的時候指定。如下所示,在連接的時候通過調用 MqttConnectOptions 實例的 setWill 方法來設定。任何訂閱了下面的主題的客戶端都可以收到該遺囑消息。

//方法1MqttConnectOptions.setWill(MqttTopic topic, byte[] payload, int qos, boolean retained)//方法2MqttConnectOptions.setWill(java.lang.String topic, byte[] payload, int qos, boolean retained)

使用場景

在客戶端 A 進行連接時候,遺囑消息設定為”offline“,客戶端 B 訂閱這個遺囑主題。當 A 異常斷開時,客戶端 B 會收到這個”offline“的遺囑消息,從而知道客戶端 A 離線了。

Connect Flag 報文字段

Bit7654210
User Name Flag Password Flag Will Retain Will QoS Will Flag Clean Start Reserved
byte 8 X X X X X X X

遺囑消息在客戶端正常調用 disconnect 方法之后并不會被發(fā)送。

Will Flag 作用

簡而言之,就是客戶端預先定義好,在自己異常斷開的情況下,所留下的最后遺愿(Last Will),也稱之為遺囑(Testament)。這個遺囑就是一個由客戶端預先定義好的主題和對應消息,附加在CONNECT的可變報文頭部中,在客戶端連接出現(xiàn)異常的情況下,由服務器主動發(fā)布此消息。

當Will Flag位為1時,Will QoS和Will Retain才會被讀取,此時消息體中要出現(xiàn)Will Topic和Will Message具體內容,否則Will QoS和Will Retain值會被忽略掉。

當Will Flag位為0時,則Will Qos和Will Retain無效。

命令行示例

下面是一個Will Message的示例:

  1. Sub端clientid=sub預定義遺囑消息:

    mosquitto_sub --will-topic test --will-payload die --will-qos 2 -t topic -i sub -h 192.168.1.1
    
  2. 客戶端 clientid=alive 在 192.168.1.1(EMQ服務器) 訂閱遺囑主題

    mosquitto_sub -t test -i alive -q 2 -h 192.168.1.1
    
  3. 異常斷開Sub端與Server端(EMQ服務器)連接,Pub端收到Will Message 。

高級使用場景

這里介紹一下如何將 Retained 消息與Will 消息結合起來進行使用。

  1. 客戶端 A 遺囑消息設定為”offline“,該遺囑主題與一個普通發(fā)送狀態(tài)的主題設定成同一個 A/status;
  2. 當客戶端 A 連接時,向主題 A/status 發(fā)送 “online” 的 Retained 消息,其它客戶端訂閱主題 A/status的時候,獲取 Retained 消息為 “online” ;
  3. 當客戶端 A 異常斷開時,系統(tǒng)自動向主題 A/status 發(fā)送”offline“的消息,其它訂閱了此主題的客戶端會馬上收到”offline“消息;如果遺囑消息被設定了 Retained 的話,這時有新的訂閱 A/status主題的客戶端上線的時候,獲取到的消息為“offline”。

新聞標題:MQTT遺囑消息(WillMessage)的使用
文章網(wǎng)址:http://weahome.cn/article/podhjd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部