MQTT:主题和主题通配符

发布时间 2023-12-28 11:12:04作者: eiSouthBoy

一、主题

MQTT的消息是以主题进行分类的,主题可以使用单级主题和多级主题,多级主题的标志是用/分隔的。例如:sensorsensor/temperaturesensor/temperature/room1

在客户端向主题发布或者订阅消息之前,无需去创建主题。这些服务器统统都会搞定。

主题使用建议:

  • 绝不使用斜杆开头的主题名,例如:/myhome/groundfloor/livingroom

  • 绝不在主题名中使用空格

  • 保持主题名短小和简洁

  • 仅使用ASCII码,避免使用ASCII码中的非打印字符

二、主题通配符

客户端可以对于具体的主题进行订阅,但某一类主题全部进行订阅,此时需要通配符来解决了。MQTT中给出了两种通配符:单级通配符(+)和多级通配符(#)

? 注意:主题通配符仅能用来订阅,不能用作发布

  • 单级通配符(+)

例如:想订阅所有房间的温度传感器的温度消息,对于所有房间的房间号是不能提前预知的,但是可以通过单级通配符搞定所有房间号。

  • 多级通配符(#)

例如:想订阅房间号room1的所有不同传感器的消息,对于所有不同传感器的类型是不能提前预知的,但是可以通过多级通配符搞定不同类型传感器名称。

? 注意:多级通配符只能放在最后一级