MQTT / PAHO阻塞直到clientB收到来自clientA的消息

时间:2015-09-25 01:33:07

标签: mqtt paho

据我所知,MQTT QOS与客户有关 - >经纪人交付协议,即QOS 1和2,可以确保经纪人收到已发布的消息。

Paho在此基础上做得很好; mqttClient.publish将阻止,直到QOS定义的协议完成 - 客户端发布和代理之间。

但是,如果我让clientA发布了一条针对clientB的消息,那么在clientB收到来自代理的消息之前我该如何阻止?

例如:

ClientB->Subscribe("peer-device/ClientB/application/message")
ClientA->Publish("peer-device/ClientB/application/message")

1 个答案:

答案 0 :(得分:0)

简短的回答是你没有

每个客户都完全不知道是否有任何其他客户订阅任何给定的主题,这是设计的。 MQTT是Pub / Sub,而不是点对点协议。 Pub / Sub体系结构的一部分是将发布者与订阅者完全分离

MQTT QOS涵盖发布者到代理商和代理商,但作为两个明显不同的步骤。第一段确保消息到达经纪人(对于QOS 1或2),第二段确保消息到达任何订户。