MQTT将消息发布到选定的客户端

时间:2015-08-12 10:27:39

标签: python mqtt

我正在研究MQTT并使用python paho-mqtt https://pypi.python.org/pypi/paho-mqtt

我无法理解如何将msg发布到特定客户端或客户列表?

我将非常感谢你的帮助。

2 个答案:

答案 0 :(得分:1)

严格的MQTT无法直接实现这一点,尽管某些代理可能会提供该功能,或者您可以构建应用程序,以便主题设计能够满足您的需求。

答案 1 :(得分:0)

虽然我确实同意在某些情况下向特定客户端(或客户端列表)发送消息是有用的,而这并不是发布/订阅消息传递范例的工作方式。 Read more on the publish-subscribe pattern on Wikipedia.如果您的系统需要做的就是向唯一客户端发送消息,那么我可能会建议为您正在设计的系统考虑不同的架构。话虽这么说,你可以利用off / pub来实现你想要的聪明的主题设计架构。

例如,假设所有客户都是组(列表)的一部分,您可以考虑以下主题设计:

每个客户的唯一性: P2P /<客户名称>

列表/群组订阅: LIST /< list-name>

例如, P2P / user12345 LIST / QA 其中只有user12345订阅 P2P / user12345 ,但QA组的所有用户都订阅了到 LIST / QA

客户有责任确保订阅自己的主题(或者如果您的经纪人允许,您也可以通过管理方式将主题添加到非清洁客户端)。

通过这种设计,发布者可以向特定用户或已定义组(列表)的所有成员发送消息。