主题为一个字符串,描述在发布/预订系统中发布的数据性质。
主题是在发布/预订中成功地传递消息的关键。发布程序指派了一个主题到消息,以取代在每个消息中包含一个特定的目标地址。消息代理将该主题与已预订该主题的客户(订户)列表进行匹配,并将消息传递给每个预订的客户。
注意,通过仔细地选择特定在消息中的主题,发布程序可以控制哪些订户可以接收发布内容。
主题可以由系统管理员使用工作台来定义。但是,在消息主题可被发布程序使用之前无需进行定义,可在其首次在发布内容中指定时进行定义。
可以为同一发布内容指定多个主题。
主题字符串包含了 Unicode 字符集中的任何字符,包括空格符在内。但是,有三种字符有特殊含义。在主题中的特殊字符中对这些字符在("/", "#", and "+")进行了描述。
尽管空字符不会引起错误,但在主题字符串中请不要使用空字符。
在主题树中定义的每个主题是一个元素或节点。 主题树可以开始为空或包含已由系统管理员使用工作台定义的主题。 可以通过使用工作台或通过在发布内容中指定首次的主题,来定义一个新的主题。
虽然您可以构造一个平坦的主题树,线性结构,但最好以带有一个或多个根主题的层次结构结构来构建主题树。
图中的每个字符串表示主题树中的一个节点。 完整的主题名称将由主题树中的一个或多个层上的节点聚集起来而创建。 用“/”字符来分隔层。完整指定的主题名称的格式为:“ root/level2/level3”。
当设计主题名称和主题树时,记住消息代理不解释或尝试从主题名称本身派生含义。它只使用主题名称将相关消息发送到已预订该主题的客户机。