我的mqtt协议和emqttd开源项目个人理解(22) - 关于客户端上线自动订阅主题

通过修改配置文件即可实现。



emq v1.1.3,rel\emqttd\etc\emqttd.config


‘subscription’扩展模块支持客户端上线时,自动订阅或恢复订阅某些主题(Topic):


%% Modules
    {modules, [
        %% Client presence management module.
        %% Publish messages when client connected or disconnected
        {presence, [{qos, 0}]},
        %% Subscribe topics automatically when client connected
        {subscription, [
            %% $c will be replaced by clientid
            %% {"$queue/clients/$c", 1},
            {"$c/w", 1}
            %% Static subscriptions from backend
            %%backend
        ]}
        %% Rewrite rules
        %% {rewrite, [{file, "etc/rewrite.config"}]}
    ]},

emq v2.3.11,软件架构做了调整,把功能集成在了emq_modules模块,/data/loaded_plugins默认会加载emq_modules。


我们只需要改动配置文件emqx-rel-2.3.11/deps/emq_modules/etc/emq_modules.conf


##--------------------------------------------------------------------
## Subscription Module
##--------------------------------------------------------------------
## Enable Subscription Module.
##
## Value: on | off
module.subscription = on
## Subscribe the Topics automatically when client connected.
module.subscription.1.topic = %c/w
## Qos of the subscription: 0 | 1 | 2
module.subscription.1.qos = 1
把module.subscription设置为on,


把module.subscription.1.topic设置为%c/w,%c是通配符,会自动切换成clientId。注意是%c,而不是$c。


上一篇:《社交网站界面设计(原书第2版)》——第二部分 我是某某 第3章 3.0邀你加入


下一篇:OpenCV 实现哈哈镜效果