【发布时间】:2018-08-18 13:48:33
【问题描述】:
我有四个 mqtt 客户端,其中两个连接在一起,另外两个连接在一起。例如,客户端 A 在主题 /AtoB 上向客户端 B 发布数据,客户端 X 在主题 /XtoY 上向客户端 Y 发布数据。 现在我将在我的 PC 上的 mqtt 代理上路由这两个主题。 我应该如何设置我的经纪人?并且我还为 mqtt 客户端找到了 mqtt 库,但我没有找到(可能吗?)库来编写 mqtt 代理。 谢谢
【问题讨论】:
我有四个 mqtt 客户端,其中两个连接在一起,另外两个连接在一起。例如,客户端 A 在主题 /AtoB 上向客户端 B 发布数据,客户端 X 在主题 /XtoY 上向客户端 Y 发布数据。 现在我将在我的 PC 上的 mqtt 代理上路由这两个主题。 我应该如何设置我的经纪人?并且我还为 mqtt 客户端找到了 mqtt 库,但我没有找到(可能吗?)库来编写 mqtt 代理。 谢谢
【问题讨论】:
MQTT 是一种发布/订阅协议,因此旨在将发布者与订阅者完全分离。
这意味着发布客户端不需要关心哪些(或多少)客户端可以订阅一个主题(无需“路由”)。
在您给出的示例中,客户端 A 发布到主题 AtoB* 客户端 B 将订阅该主题。同样,客户端 X 发布到主题 XtoY 并且客户端 Y 订阅。如果您 PC 上的某个应用想要接收相同的消息,那么它还将订阅 AtoB 和 XtoY 这两个主题,并会收到相同的消息。
关于图书馆的问题的第二个问题部分。通常不需要使用库来创建代理,只需使用现有代理之一即可。如果你真的真的需要做一些非标准的事情,那么有像 mosca 这样的库来实现自定义代理。
*主题不需要以/ 开头,这样做会增加一层额外的复杂性,最好避免。
【讨论】: