多个已发布的蚊子,仅只读最近发布的

时间:2019-07-16 18:09:25

标签: mqtt mosquitto

我有问题。 使用mosquitto,当我在同一主题上发布多个数据时,发布后,我就在该主题上进行了分类,但仅显示了该主题的最后一个值。

MacBook-Pro-de-Mathieu:~ mathieu$ mosquitto_pub -h localhost -t test -m "A" -r
MacBook-Pro-de-Mathieu:~ mathieu$ mosquitto_pub -h localhost -t test -m "B" -r

MacBook-Pro-de-Mathieu:~ mathieu$ mosquitto_sub -h localhost -t test
B

当我转为主题“ test”时,仅显示B

正常吗?我想要一个无限制发布的队列,并在有人关注此主题时显示我的所有数据。

1 个答案:

答案 0 :(得分:1)

这是根据MQTT规范进行的设计和预期工作。所有MQTT经纪人都将以这种方式行事。

MQTT是发布/订阅协议,不是消息排队系统。

您正在将-r标志与mosquitto_pub一起使用,以在发布消息时在邮件上设置保留标志。

代理仅保留任何给定主题的最新保留消息,并在订阅时将该消息传递给该主题的新订阅者。因此,当您发布第二条消息时,它将覆盖第一条消息。