Subscription wildcards(MQTT)

想查看英文原文的请点击原文网址。本文是paho中讲述订阅通配符的。还是那句话,水平有限,如有翻译不当之处,欢迎指正。

订阅通配符

  MQTT信息包含一个主题来进行区分。MQTT服务器使用主题来确定哪个订阅者可以接收到发布到服务器的信息。

  考虑到服务器要接收来自多种环境传感器的信息,每个传感器将它的测量数据作为带有相关主题的信息来发布,订阅程序需要知道,这些收到的信息,分别是由哪个传感器最初发布的,因此使用一个唯一的话题来区分每个传感器和测量类型。如SENSOR1TEMP,SENSOR1HUMIDITY,SENSOR2TEMP 等之类的话题实现了以上所述,但不够灵活,如果在之后有别的传感器被添加到这个系统,还必须要修改订阅应用程序以接收它们。

  为了提供更大的灵活性, MQTT 支持分层主题命名空间。这允许应用程序设计人员组织主题以简化其管理。层次结构中的级别由 “/” 字符分隔, 如 SENSOR/1/HUMIDITY。发布者和订阅者使用这些如上文所述的层次结构的主题。
  订阅者支持两种两个通配符:
  1.”#” 字符表示层次结构的完整子树, 因此必须是订阅主题字符串中的最后一个字符, 如SENSOR/#。这将匹配从SENSOR/开始的任何主题, 如 SENSOR/1/TEMP 和 SENSOR/2/HUMIDITY。
  2.”+” 字符表示层次结构的单个级别, 并在分隔符之间使用。例如, SENSOR/+/TEMP将匹配 SENSOR/1/TEMP 和 SENSOR/2/TEMP。

发布者不允许在其主题名称中使用通配符。

确定主题层次结构是系统设计中的一个重要步骤。

猜你喜欢

转载自blog.csdn.net/weixin_37139197/article/details/78911600