首页 文章

如果没有订户,MQTT客户端必须发布到主题吗?

提问于
浏览
1

在MQTT和pub / sub的上下文中,假设我的嵌入式微控制器IOT设备具有可以映射到“主题”的大量变量(即,各种传感器,值,设置,输出等) .

如果主题没有订阅者,是否真的有必要发布(到经纪人)主题?
我想我对MQTT有一个相当不错的把握,但是当我想到这个设备的实现时,这个问题突然出现在我面前 . 对于此设备始终发布所有主题并不是一件容易的事 .

通常在这种情况下,订户将对一小部分主题感兴趣,而不是全部 . 如果只订阅了一小部分,似乎没有必要在所有主题上发布 . 为什么不发布订阅的主题?

MQTT订户客户端通常连接到代理,然后将其订阅消息发送到代理 . 我没有看到订阅者可以向发布者指出他们感兴趣的主题的机制,从而允许发布者仅发布必要的主题 .

我是否误解了MQTT的细微差别,或者更常见的是pub / sub?

1 回答

  • 6

    发布者不知道任何主题有多少订阅者 .

    发布者/子结构的一部分是将发布者与订阅者完全分离,这全部由代理处理 . 是的,这可能导致发布的内容没有人听,但它简化了发布者 .

    此外,当使用诸如保留主题和持久会话之类的东西时,仅仅因为订阅者当前未连接它并不意味着以后不会传递消息

相关问题