MQTT主题
MQTT的主题是一个utf-8编码的字符串,最大长度65535字节,严格区分大小写
MQTT主题支持分层结构,主题分隔符用'/'表示,主题的层级长度可以为0
主题层级的一个作用是和通配符配合使用消息分发和主题订阅,可以使用通配符实现一次订阅多个主题的效果
主题通配符
单层通配符: 用 '+'表示,可以匹配当前层级主题下的任意内容,不能同时匹配多个层级,单层通配符可以在一个主题中多次使用
多层通配符: 用'#'表示,如果主题层级数量不固定,那么单层通配符想做某一模式的通用匹配就失去了效果,可以使用多层通配符,多层通配符可以匹配任意数量个层级,包括0个层级,因为多层通配符匹配层级的不确定性,多层通配符必须是主题的最后一个字符
单层和多层通配符可以同时使用,主题通配符必须完全的占用一个层级
只有在订阅和取消订阅的时候,才支持使用主题通配符,达到一次订阅/取消订阅多个主题的目的,在发布消息的时候,不支持使用主题通配符,必须要明确发送消息的主题,所以在订阅和取消订阅时候的主题称为主题过滤器,发布的时候的主题称为主题名
特殊主题
- 特殊主题概述
订阅$开头的主题
主题使用的一些建议
主题可以视为发布订阅的核心,所以设计主题是重中之重
不建议以/开头或者结尾
建议使用ASCLL字符
不在主题中使用空格
尽量使用简洁的主题
不建议使用#订阅所有主题
在主题中包含标识信息