我正在尝试设置一个 MQTT 服务器,它将客户端发送的消息保存到本地数据库中。每条消息都有一个“成功接收”标志,当接收客户端为收到的每条消息(QOS = 1)返回一个 puback 时,我想翻转该标志。
问题是:
当我发布消息时,服务器会正确接收来自接收客户端的 puback。但是,messageId 与发布客户端数据包中的不同。我知道这是故意的。但随后我将无法在 DB 中找到正确的消息来翻转标志。如果客户端 A 背靠背向客户端 B 发送 2 条 QOS = 1 的消息怎么办?服务器如何区分返回的 2 个 puback?
也许 MQTT 客户端正在做一些神奇的事情来映射我缺少的 messageIds?
我正在使用 mqttjs 和 paho mqttv3 顺便说一句。