【发布时间】:2018-06-22 15:07:49
【问题描述】:
我是 mqtt 设计的新手。
我从网上的一些教程中看到,常见的 mqtt 主题格式如下:/home/room/device_type/device_id
我看不出这样做有什么好处。并且不知道如何使用这种设计。
在我看来,设备 (dev) 可能订阅 (sub) 控制主题并发布 (pub) 到状态主题。像这样:
- 发布:clients/dev/devid/stat
- 子:clients/dev/devid/ctrl
这样看来sub,pub逻辑对于客户端和设备来说都非常简单
有人可以告诉我一些设计mqtt主题的好方法吗?
(!) 请不要以 '/' 开头的话题(这个是 HiveMQ 团队推荐的)
编辑:
我刚刚发现对于任何类型的设计,模型至少必须是可服务的:
- 单独控制:向特定设备发送控制命令。
- 组控制:向一组设备发送控制命令:类型,定义组
- 能够接收设备状态。
非常感谢
【问题讨论】:
-
首先,主题不应以
/开头 -
发件人:hivemq.com/blog/…。他们说:“应该避免这种情况,因为它没有任何好处,而且经常导致混乱。”我很抱歉,但我认为没有理由避免这种情况。 '/'代表顶层,比任何词都简单:top、boss、father等
-
是的,我同意
-
它在主题树的开头添加了一个空值,这使得正确使用通配符变得更加困难。
-
这是一个额外的搜索树级别,对于
+通配符匹配更是一个问题。此外,由于记录了不良做法,它使互操作性变得更加困难,所以不要这样做
标签: mqtt