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

时间:2015-09-07 05:13:07

标签: mqtt

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

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

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

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

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

1 个答案:

答案 0 :(得分:6)

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

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

此外,在使用保留主题和持久会话等内容时,仅因为订阅者当前未连接,并不意味着以后无法发送消息