Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 3.1.1
    • Fix Version/s: 3.1.1
    • Component/s: core
    • Labels:
      None
    • Proposal:
      Hide

      Topics beginning with $
      1. MQTT server implementations MAY define topic names that start with a leading $ character

      non-normative:

      • $SYS/ has been widely adopted as a prefix to topics that contain server-specific information or control APIs.
      • Applications cannot use a topic with a leading $ character for their own purpose.

      Subscription handling
      1. A topic filter that starts with a wildcard character (# or +) does not match topic names that begin with a $ character

      non-normative examples:
      1. A subscription to # will not receive any messages published to a topic beginning with a $
      2. A subscription to +/monitor/clients will not receive any messages published to $SYS/monitor/clients
      3. A subscription to $SYS/# will receive messages published to topics beginning with $SYS/
      4. A subscription to $SYS/monitor/+ will receive messages published to $SYS/monitor/clients
      5. For a client to receive messages from topics that begin with $SYS/ and from topics that don't begin with a $, it must subscribe to both # and $SYS/#

      Show
      Topics beginning with $ 1. MQTT server implementations MAY define topic names that start with a leading $ character non-normative: $SYS/ has been widely adopted as a prefix to topics that contain server-specific information or control APIs. Applications cannot use a topic with a leading $ character for their own purpose. Subscription handling 1. A topic filter that starts with a wildcard character (# or +) does not match topic names that begin with a $ character non-normative examples: 1. A subscription to # will not receive any messages published to a topic beginning with a $ 2. A subscription to +/monitor/clients will not receive any messages published to $SYS/monitor/clients 3. A subscription to $SYS/# will receive messages published to topics beginning with $SYS/ 4. A subscription to $SYS/monitor/+ will receive messages published to $SYS/monitor/clients 5. For a client to receive messages from topics that begin with $SYS/ and from topics that don't begin with a $, it must subscribe to both # and $SYS/#

      Description

      Many MQTT implementations today use $SYS as the head of a topic string for use in administration (configuration, operations, monitoring).

      Can the $SYS or a similar topic name be reserved for future use ? As $SYS is already used by a number of servers using a different top level topic would avoid conflicts.

      Would be good to collect ideas for a $SYS topic space. These ideas could initially go into a non-normative document but with potential for inclusion in a future spec. The intent being servers can implement some aspects of administration and monitoring in a consistent way

      Some examples:

      • Admin action like "unretain" a retained topic e.g. $SYS/topic/unretain (payload is the topic to unretain)
      • Client wishes to query what subscriptions it has made e.g. $SYS/client/getsubs (topic is clientid)
      • Client wishes to query how many messages are queued up awaiting delivery e.g. $SYS/client/getNoQueuedMessages
      • Query the state of the MQTT server e.g. $SYS/server/getStatus

      These examples should not be taken literally they are purely to show the type of things a $SYS topic space could be used for.

        Attachments

          Activity

            People

            • Assignee:
              ragupta2 Rahul Gupta
              Reporter:
              locke David Locke (Inactive)
            • Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: