一个关于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似乎是合适的。我不确定我看到的情况是订阅者会为完全相同的主题订阅自己的发布者。
发布于 2020-07-04 21:12:11
我已经将MQTT用于许多不同的事情,包括在一台计算机上运行多处理程序的IPC。
方法1是目前为止利用MQTT功能的最好方法。在多个设备连接到一个或多个服务器的用例中,Mosquitto实现和通配符订阅中内置的安全模型会处理许多否则难以实现的事情。
例如,可以将主题分解为以下格式:
devicesout/<username>
devicesin/<username>
可以通过安全配置将设备限制为在devicesin/<username>
上发布和订阅devicesout/<username>
。服务器连接可以在安全性上使用通配符,可以订阅/devicesin/#
,也可以发布到任何devicesout/<username>
。当消息传入时,topic
包含设备的<username>
。
https://stackoverflow.com/questions/62724417
复制相似问题