主题详解
/ 进行分层:
chat/room/1
test/10/temperature
test/+/temperature
test/#
为了避免歧义且易于理解,通常不建议主题以 / 开头或结尾,例如 /chat 或 chat/。
MQTT 主题不需要提前创建。MQTT 客户端在订阅或发布时即自动的创建了主题,开发者无需再关心主题的创建,并且也不需要手动删除主题。
MQTT 主题通配符包含单层通配符 + 及多层通配符 #,主要用于客户端一次订阅多个主题。
加号 ("+") 是用于单个主题层级匹配的通配符。在使用单层通配符时,单层通配符必须占据整个层级,例如:
+ 有效
test/+ 有效
test/+/temperature 有效
test+ 无效(没有占据整个层级)
如果客户端订阅了主题 test/+/temperature,将会收到以下主题的消息:
test/1/temperature
test/2/temperature
...
test/n/temperature
但是不会匹配以下主题:
test/temperature
test/bedroom/1/temperature
井字符号("#")是用于匹配主题中任意层级的通配符。多层通配符表示它的父级和任意数量的子层级,在使用多层通配符时,它必须占据整个层级并且必须是主题的最后
一个字符,例如:
# 有效,匹配所有主题
test/# 有效
test/bedroom# 无效(没有占据整个层级)
test/#/temperature 无效(不是主题最后一个字符)
如果客户端订阅主题 test/#,它将会收到以下主题的消息:
test
test/temperature
test/1/temperature
以 $SYS/ 开头的主题为系统主题,系统主题主要用于获取 MQTT 服务器自身运行状态、消息统计、客户端上下线事件等数据。目前,MQTT 协议暂未明确规定 $SYS/
主题标准,但大多数 MQTT 服务器都遵循该。
例如,EMQX 服务器支持通过以下主题获取集群状态:
主题 说明 $SYS/brokers EMQX 集群节点列表 $SYS/brokers/emqx@127.0.0.1/version EMQX 版本 $SYS/brokers/emqx@127.0.0.1/uptime EMQX 运行时间 $SYS/brokers/emqx@127.0.0.1/datetime EMQX 系统时间
EMQX 还支持客户端上下线事件、收发流量、消息收发、系统监控等丰富的系统主题,用户可通过订阅 $SYS/# 主题获取所有系统主题消息。
比如订阅客户端上下线事件主题:
$SYS/brokers/emqx@172.17.0.4/clients/+/connected # 订阅客户端上线的主题
$SYS/brokers/emqx@172.17.0.4/clients/+/disconnected # 订阅客户端下线的主题
c#中string和StringBuilder直接看看执行速度。(2).String类型累计赋值Test  ...
【一】.钩子文件的设置和创建(1).打开hooks目录,可以看到有一个post-commit.tmpl文件,这是一个模板文件。复制一份,重命名为post-commit,将其用户组设为www,并设置为可执行。chown www:www post-commitchmod +x post-commit(2...
public static string GetMD5(string str) { //创建MD5对象 MD5 md5 = MD5.C...
首先网页全部是纯静态的文件,本地测试正常访问,服务器端无法加载CSS,并且无法查看CSS文件的内容。 解决方案:关闭网站的压缩->>静态压缩和动态压缩...
1.文件redis-2.6.14.tar.gz的上传 /home/john/创建rdtar文件夹 上传redis-2.6.14.tar.gz至rdtar文件夹 2.解压文件 cd /home/john/rdtar tar &n...
首先在阿里云申请免费的证书,选择自动生成证书。然后就是nginx虚拟主机配置文件的修改。以下是我的配置文件(因为公司开发小程序,没有办法只能使用https)。您只需要关注带有ssl的配置选项,我增加了一个监听80和443的端口,同时增加了http跳转https的配置server &nbs...