【问题标题】:MQTT publish and subscribe, different topics from same device?MQTT发布和订阅,来自同一设备的不同主题?
【发布时间】:2020-07-04 01:32:54
【问题描述】:

关于 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 合适。不确定我是否看到订阅者会订阅自己的发布者以获取完全相同的主题。

【问题讨论】:

  • 很抱歉,但不清楚您在这里问什么。能举个真实的例子吗?

标签: mqtt


【解决方案1】:

我一直在将 MQTT 用于许多不同的事情,包括用于在单台计算机上运行的多处理程序的 IPC。

方法 1 是迄今为止利用 MQTT 功能的最佳方法。在多个设备连接到一个或多个服务器的用例中,内置于 Mosquitto 实现和通配符订阅中的安全模型可以处理许多原本难以实现的事情。

例如,主题可以分为这种格式:

devicesout/<username>
devicesin/<username>

可以通过安全配置限制设备在devicesin/&lt;username&gt; 上发布和订阅devicesout/&lt;username&gt;。服务器连接可以安全地使用通配符,订阅/devicesin/#,并发布到任何devicesout/&lt;username&gt;。当消息进入时,topic 包含设备的&lt;username&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-10
    • 1970-01-01
    相关资源
    最近更新 更多