设备接入 IOTDA-设备Topic策略使用前必读:策略通配符
策略通配符
策略中具有不同的通配符,使用前需注意。在策略中,“*”表示字符的任意组合,问号“? ”表示任何单个字符,而通配符“+”和“#”被视为没有特殊含义的字符。
通配符 |
是MQTT通配符 |
策略配置是否适用 |
MQTT中主题示例 |
适用于MQTT主题示例的策略示例 |
---|---|---|---|---|
# |
是 |
否 |
test/# |
不适用,“#”被视为没有特殊含义的字符。 |
+ |
是 |
否 |
test/+/some |
不适用,“+”被视为没有特殊含义的字符。 |
* |
否 |
是 |
不适用,“*”被视为没有特殊含义的字符。 |
test/* test/*/some |
? |
否 |
是 |
不适用,“?”被视为没有特殊含义的字符。 |
test/????/some test/set?????/some |
发布/订阅的Topic |
策略Topic定义 |
解释 |
---|---|---|
假设设备需要订阅/发布以下Topic: “test/topic1/some” “test/topic2/some” “test/topic3/some” |
“topic:test/topic?/some” |
在发布、订阅的Topic中可以发现有共同点:“test/topic”+ 某一字符 + “/some”,而在策略定义中“?”代表某一字符。所以策略Topic可以定义为“topic:test/topic?/some” |
假设设备需要订阅/发布以下Topic: “test/topic1/pub/some” “test/topic2/sub/some” “test/topic3/some” |
“topic:test/topic*/some” |
在发布、订阅的Topic中可以发现有共同点:“test/topic”+ 一个或多个字符 + “/some”,而在策略定义中“*”代表多个或一个字符。所以策略Topic可以定义为“topic:test/topic*/some” |