1. 程式人生 > 其它 >WEB客戶端如何配置MQTT遺囑訊息及其他端如何接收

WEB客戶端如何配置MQTT遺囑訊息及其他端如何接收

Q:客戶端如何配置?

connection 配置will引數;

var mqtt = require('mqtt')

mqtt.connect({
      useSSL: false,
      protocol: 'https:' === window.location.protocol ? 'wss' : 'ws',
      path: '/mqtt',
      clientId: new Date().getTime(), // 客戶端ID
      host: mqttHost, // MQTT伺服器地址
      port:
        'https:' === window.location.protocol
          ? '8084'
          : '8083',
      will: { topic: 'death', payload: '客戶端異常斷開了' },
    })

last will and testament

Q:服務端如何接收?

主題是客戶端連線mqtt伺服器時自己配置的,客戶端配置的什麼主題,其他端就用什麼主題去訂閱;例如上面的topic為'death',則訂閱主題也是'death'

參考:

MQTT 遺囑訊息(Will Message)的使用

遺囑訊息可以看作是一個簡化版的 PUBLISH 訊息,他也包含 Topic, Payload, QoS 等欄位。遺囑訊息會在裝置與服務端連線時,通過 CONNECT 報文指定,然後在裝置意外斷線時由服務端將該遺囑訊息釋出到連線時指定的遺囑主題(Will Topic)上。這也意味著服務端必須在回覆 CONNACK 之前完成遺囑訊息的儲存,以確保之後任一時刻發生意外斷線的情況,服務端都能保證遺囑訊息被髮布。