有关MQTT发布和订阅的问题,来自同一设备的不同主题。在使用不同主题进行发布和订阅时是否被认为是不好的形式或做法,还是应该使用同一主题而有效负载增量不仅用于仅通过主题来限定功能?换句话说:
Method 1:
Device 1, Publish Topic A, Payload Null
Device 1, Subscribe Topic B, Payload Null
Method 2
Device 1, Publish Topic A, Payload 'some task'
Device 1, Subscribe Topic A, Payload 'some task task'
据我所知,给出的示例已经证明,方法1是最佳实践方法。但是,有没有人甚至使用过方法2或类似的方法?
对于两个不同的设备,方法2是有意义的,但是在单个设备上,仅方法1似乎合适。不确定我看到订户会为完全相同的主题订阅自己的发布者的情况。
答案 0 :(得分:0)
我一直在使用MQTT做许多不同的事情,包括IPC用于在单台计算机上运行的多处理程序。
到目前为止,方法1是利用MQTT功能的最佳方法。在将多个设备连接到一个或多个服务器的用例中,内置在Mosquitto实现和通配符预订中的安全模型可以处理许多否则将难以实现的事情。
例如,主题可以分为这种格式:
devicesout/<username>
devicesin/<username>
通过安全配置,可以限制设备在devicesin/<username>
上发布和订阅devicesout/<username>
。可以安全地通配服务器连接,订阅/devicesin/#
并发布到任何devicesout/<username>
。收到消息时,topic
包含设备的<username>
。