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

Mat*_*w B 3 mqtt

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

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

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

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

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

har*_*llb 7

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

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

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