簡體   English   中英

包含 Mosquitto 服務器時間的“Will message”

[英]“Will message” that includes Mosquitto server's time

在 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”顯示了在客戶端創建 object _will_message的時間!

有沒有辦法顯示 Mosquito 服務器意識到客戶端斷開連接甚至更好的時間,實際發生斷開連接的時間(我們可能需要減去一些超時值)

不,LWT 消息的發布將與創建時設置的內容完全不同。

您應該能夠找到客戶端與 mosquitto 日志斷開連接的時間。

例如

1592604090: Socket error on client mosq-Za0gqtsXkazB5N8Ugt, disconnecting.
1592604238: New connection from 127.0.0.1 on port 1889.
1592604238: New client connected from 127.0.0.1 as mosq-SrUz3EXOh9Bc6huMni (p2, c1, k10).
1592604264: Client mosq-SrUz3EXOh9Bc6huMni has exceeded timeout, disconnecting.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM