zoukankan      html  css  js  c++  java
  • EMQ 学习---订阅$SYS主题,捕获客户端上下线消息

    acl.config文件定义了可订阅$SYS主题的权限

    {allow, {user, "dashboard"}, subscribe, ["$SYS/#"]}.
    
    {allow, {ipaddr, "127.0.0.1"}, pubsub, ["$SYS/#", "#"]}.
    
    %%%{deny, all, subscribe, ["$SYS/#", {eq, "#"}]}.
    
    {allow, all}.
    

    acl.config文件第三行默认是禁止客户端订阅$SYS/#主题。我们把它注释掉。开启一个客户端,订阅$SYS/#主题,消息如下:

    module(emqttd_broker)这个模块,它会每秒钟publish消息,主题关键字有uptime和datetime等。

    module(emqttd_stats)这个模块,它会每60秒钟publish消息,把Ets表mqtt_stats的信息发出来。

    module(emqttd_metrics)这个模块,它的原理同上。

    eg: 

    $SYS/brokers/emqttd@127.0.0.1/uptime: qos=0

    $SYS/brokers/emqttd@127.0.0.1/sysdescr: qos=0

    打开文件vm.args,把节点名称修改为:

    #-name emqttd@127.0.0.1
    -name emqttd@172.16.6.161
    

    eg: 

    $SYS/brokers/emqttd@172.16.6.161/uptime: qos=0

    $SYS/brokers/emqttd@172.16.6.161/sysdescr: qos=0

    订阅客户端上下线的主题

    具体某个节点的某个clientId方式的主题是:

    $SYS/brokers/(node)/clients/(clientId)/connected
    $SYS/brokers/emqttd@172.16.6.161/clients/861694030142478/connected
    $SYS/brokers/emqttd@172.16.6.161/clients/861694030142478/disconnected
    

    通配方式的主题是:

    $SYS/brokers/+/clients/+/connected
    $SYS/brokers/+/clients/+/disconnected
    $SYS/brokers/+/clients/#
    

    出于安全起见,我们把acl.config文件修改为:

    允许客户端订阅"$SYS/brokers/+/clients/#"主题,但是禁止订阅"$SYS/#"主题。

    {allow, {user, "dashboard"}, subscribe, ["$SYS/#"]}.
    
    {allow, {ipaddr, "127.0.0.1"}, pubsub, ["$SYS/#", "#"]}.
    
    {allow, all, subscribe, ["$SYS/brokers/+/clients/#"]}.
    
    {deny, all, subscribe, ["$SYS/#", {eq, "#"}]}.
    
    {allow, all}.
    

      



  • 相关阅读:
    Jmeter错误解析-明明写对了,确报404,原因是接口里多了个空格
    Jmeter+ant+svn+jenkins一键部署(四)--机器人发报告
    Django
    Linux下压缩解压文件夹+下载+删除命令
    VUE-安装
    Hadoop核心-MapReduce
    Pulsar 社区周报|2021-06-14~2021-06-20
    ApacheCon Asia 2021: Apache Pulsar 技术议题一览
    Pulsar 社区周报|2021-06-07~2021-06-13
    直播回顾|TGIP-CN 032:Apache Pulsar 快速上手实战
  • 原文地址:https://www.cnblogs.com/saryli/p/9782361.html
Copyright © 2011-2022 走看看