首页 > 解决方案 > 从 MQTT 获取数据

问题描述

有没有办法在不使用缓存或其他任何东西的情况下从 MQTT 获取实际传感器状态?

例如,在 NR 重新启动后,我需要将所有实际值保存在 MQTT 中,我该怎么做?

标签: mqttnode-red

解决方案


值不保存在 MQTT 中,它不是数据库而是消息传递系统。

此外,您不使用 MQTT 获取数据,您订阅主题并在发布消息时将消息传递给客户端。

这些语句的唯一例外情况如下:

  1. 保留的消息。如果发布者在消息上设置了保留标志,则在主题上带有保留标志的最后发布的消息将被传递给订阅该主题的任何客户端。这对于确保订阅者始终可以访问最后发布的值很有用。

  2. 高 QOS 订阅。如果客户端配置为订阅具有 QOS 1 或 2 的主题,则代理应在客户端离线时将该主题上发布的任何消息排队,并在客户端重新连接并重新订阅该主题时将它们传递给客户端(假设相同的客户端-id 被使​​用,除非 cleansession 标志设置为 true)。

如果您想轮询传感器的当前值,您始终可以让传感器订阅命令主题并使用它来指示它们发布其最新值。


推荐阅读