有没有办法区分新的和保留的MQTT消息?

时间:2016-06-17 05:15:00

标签: mqtt

与标题一样,我可以区分新的和保留的MQTT消息吗? 以及如何知道客户何时发布消息?所有这些不带都会在主题或消息中指定时间戳字符串。

2 个答案:

答案 0 :(得分:3)

客户使用保留标志向经纪人表明经纪人应将消息保留为"最后已知的商品"正在发布的主题的值。

当代理与客户端对话时,保留的标志具有不同的含义:如果在消息上设置了标志,则表示该消息是在之前作为保留消息发布的消息。客户订阅了该主题。换句话说,它是一个陈旧的"信息。当代理发送的消息没有设置保留标志时,表示该消息刚刚由另一个客户端发布,可以认为是新的/新的。

正如@hardillb所说,无法确定您收到的新消息是否被发布客户指定为保留消息。

答案 1 :(得分:2)

MQTT发布数据包标头中有一个标志,表示保留了一条消息。

但是假设您正在尝试发送两次发送的消息,这将不会有帮助,因为发布者可以在订阅者重新连接时发布新的保留消息,并且它将首次使用保留位设置发送。 / p>

至于消息时间戳,不,如果你想要一个,你必须将它包含在有效载荷中。