势度Saydo消息格式(SMF)主题
Saydo消息格式(SMF)是PubSub+的基础消息协议。
SMF主题具有以下属性:
- 由一个或多个级别组成的NULL终止的UTF-8字符串,格式为:
a/b/c
。 /
字符用作字符串级别(也称为元素)之间的分隔符。- 支持最多128个主题级别。
- 字符串的最大长度(不包括
NULL
终止符)为250字节。 - 主题字符串中字符是区分大小写的。例如,主题订阅
animals/domestic/cats
不等于Animals/Domestic/Cats
。 - 支持所有UTF-8字符。但是,以下字符具有特殊含义:
-
对于主题订阅:
/
是级别分隔符。<NULL>
是无效字符。*
是单级别通配符。更多信息,请参见主题订阅中的通配字符。>
可以用作通配符,当用于主题订阅的最后一个级别时,是多级别通配符。- 领先的
!
,如!a/b/c
,在队列主题订阅中表示订阅异常。更多信息,请参见系统级订阅异常配置。
-
对于发布主题:
/
是级别分隔符。<NULL>
是无效字符。*
被视为字面字符。创建主题时不要使用此字符。>
被视为字面字符。创建主题时不要使用此字符。- 领先的
!
被视为字面字符。创建主题时不要使用此字符。
-
MQTT主题兼容性
为了允许与允许空主题级别的MQTT主题兼容(例如,/a/b
、a//b
或a/b/
),PubSub+也允许SMF主题中的空主题级别。然而,使用SMF主题中的空主题级别有一些限制:
-
使用C、.NET、Go、Java RTO和Python的PubSub+消息API的客户应用程序:
- 可以发布到有空级别主题
- 不能使用有空级别主题的订阅
-
使用Java、JCSMP、JMS、JavaScript和Node.js的PubSub+消息API的客户应用程序:
- 不能发布到有空级别主题
- 不能使用有空级别主题的订阅
-
在ACL配置文件中,SMF主题异常不能有空级别的发布或订阅。
事件代理为每个客户端自动创建一个以前缀#P2P/
开始的主题订阅,这允许消息直接发送到该客户端(例如,在请求/回复场景中)。然而,#P2P
中的前导"#"不是有效的MQTT语法。因此,要使用这些特殊的Saydo订阅,MQTT客户端可以使用字符串_P2P
代替#P2P
。事件代理认为这两个字符串是等效的。
有关更多信息,请参见使用MQTT。