В MQTT "будут сообщения" могут храниться на сервере клиентом. Они публикуются сервером, когда тот же клиент внезапно отключается. Чтобы упростить отладку, имеет смысл включить дату и время в "будет сообщение" .
В настоящее время я использую библиотеку Paho MQTT и определяю "будет сообщение" вот так:
let _dt = {
date: () => {
let _d = new Date();
let _dd = `${_d.toLocaleDateString("en-US")}`;
return _dd;
},
time: () => {
let _d = new Date();
let _dd = `${_d.getHours()}:${_d.getMinutes()}:${_d.getSeconds()}.${_d.getMilliseconds()}`;
return _dd;
},
}
let _will_message = new Paho.MQTT.Message(`Client "${_client_id}" disconnected abruptly ${_dt.date()} at ${_dt.time()}.`);
_will_message.destinationName = `/will_messages`;
_will_message.retained = true;
_will_message.qos = 2;
Но это явно не правильный путь, потому что "will message" показывает время, в которое объект _will_message
создается на клиенте!
Есть ли способ показать время, когда сервер Mosquito обнаружил отключение клиента или, что еще лучше, когда отключение действительно произошло (нам, вероятно, потребуется вычесть некоторое значение тайм-аута) ?