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: '客户端异常断开了' },
})
Q:服务端如何接收?
主题是客户端连接mqtt服务器时自己配置的,客户端配置的什么主题,其他端就用什么主题去订阅;例如上面的topic为'death',则订阅主题也是'death'
参考:
遗嘱消息可以看作是一个简化版的 PUBLISH 消息,他也包含 Topic, Payload, QoS 等字段。遗嘱消息会在设备与服务端连接时,通过 CONNECT 报文指定,然后在设备意外断线时由服务端将该遗嘱消息发布到连接时指定的遗嘱主题(Will Topic)上。这也意味着服务端必须在回复 CONNACK 之前完成遗嘱消息的存储,以确保之后任一时刻发生意外断线的情况,服务端都能保证遗嘱消息被发布。
To be a better man.