多个已发布的蚊子,子只读最后发布
Multiple published mosquitto, sub read only last published
我有问题。
使用 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
正常吗?我想要一个无限发布的队列,当有人订阅这个主题时显示我所有的数据。
这是按照 MQTT 规范的设计和预期工作的。所有 MQTT 代理都将以这种方式运行。
MQTT 是一个 pub/sub 协议,而不是消息队列系统。
您正在使用带有 mosquitto_pub 的 -r
标记来在消息发布时设置保留标记。
代理只保留任何给定主题的最新保留消息,并在订阅时将其传递给该主题的新订阅者。因此,当您发布第二条消息时,它会覆盖第一条消息。
我有问题。 使用 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
正常吗?我想要一个无限发布的队列,当有人订阅这个主题时显示我所有的数据。
这是按照 MQTT 规范的设计和预期工作的。所有 MQTT 代理都将以这种方式运行。
MQTT 是一个 pub/sub 协议,而不是消息队列系统。
您正在使用带有 mosquitto_pub 的 -r
标记来在消息发布时设置保留标记。
代理只保留任何给定主题的最新保留消息,并在订阅时将其传递给该主题的新订阅者。因此,当您发布第二条消息时,它会覆盖第一条消息。