[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: [OASIS Issue Tracker] Commented: (MQTT-16) Reserve $SYS topic name
[ http://tools.oasis-open.org/issues/browse/MQTT-16?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=34496#action_34496 ] Nick O'Leary commented on MQTT-16: ---------------------------------- Following further discussion, here is an updated proposal that covers both the meaning of $-prefixed topics and how subscriptions are handled: NB: one of the original non-normative examples has been removed: "a client that publishes or subscribes to $foo would be non-compliant". This implies a client would be required to police the topics the driving application tried to use. If, in future versions, addition $-topic names are defined, it would be overly onerous to update all client implementations to add the newly permitted topics. The policing of the topic should be a server-side function. ---------- Topics beginning with $ 1. Applications MUST not define any topic names that start with a leading $ character 2. MQTT server implementations MAY define topic names that start with the the string "$SYS/" 3. MQTT server implementations MUST NOT define any other topics whose names start with a leading $ character. non-normative examples: 1. A server that defined and accepted subscriptions to $SYS/monitor/clients would be compliant 2. A server that defined and accepted publications to $SYS/control/setMaxClients would be compliant 3. A server that accepted subscriptions or publications on $foo would be non-compliant. 4. A topic name of stock/$price is compliant 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/# ---------- > Reserve $SYS topic name > ----------------------- > > Key: MQTT-16 > URL: http://tools.oasis-open.org/issues/browse/MQTT-16 > Project: OASIS Message Queuing Telemetry Transport (MQTT) TC > Issue Type: Improvement > Components: core > Affects Versions: 3.1.1 > Reporter: David Locke > Fix For: 3.1.1 > > > 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. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://tools.oasis-open.org/issues/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]