MQTT主题
  • MQTT的主题是一个utf-8编码的字符串,最大长度65535字节,严格区分大小写

  • MQTT主题支持分层结构,主题分隔符用'/'表示,主题的层级长度可以为0

  • 主题层级的一个作用是和通配符配合使用消息分发和主题订阅,可以使用通配符实现一次订阅多个主题的效果

主题通配符
  • 单层通配符: 用 '+'表示,可以匹配当前层级主题下的任意内容,不能同时匹配多个层级,单层通配符可以在一个主题中多次使用

  • 多层通配符: 用'#'表示,如果主题层级数量不固定,那么单层通配符想做某一模式的通用匹配就失去了效果,可以使用多层通配符,多层通配符可以匹配任意数量个层级,包括0个层级,因为多层通配符匹配层级的不确定性,多层通配符必须是主题的最后一个字符

  • 单层和多层通配符可以同时使用,主题通配符必须完全的占用一个层级

  • 只有在订阅和取消订阅的时候,才支持使用主题通配符,达到一次订阅/取消订阅多个主题的目的,在发布消息的时候,不支持使用主题通配符,必须要明确发送消息的主题,所以在订阅和取消订阅时候的主题称为主题过滤器,发布的时候的主题称为主题名

特殊主题
  • 特殊主题概述
  • 订阅$开头的主题

主题使用的一些建议
  • 主题可以视为发布订阅的核心,所以设计主题是重中之重

  • 不建议以/开头或者结尾

  • 建议使用ASCLL字符

  • 不在主题中使用空格

  • 尽量使用简洁的主题

  • 不建议使用#订阅所有主题

  • 在主题中包含标识信息

04-27 16:09