1.插件開關
2.0-rc.3版本將Presence模塊改為獨立插件,Presence模塊會向$SYS主題(Topic)發(fā)布客戶端上下線消息苔严。
默認是開啟
etc/plugins/emq_mod_presence.conf
## Enable presence module
## Values: on | off
module.presence = on
module.presence.qos = 0
2.$SYS系統(tǒng)主題訂閱配置
訂閱主題通用上下線主題
$SYS/brokers/emqttd@127.0.0.1/clients/#
默認只允許localhost的MQTT客戶端訂閱$SYS主題铝宵,可通過etc/acl.config修改訪問控制規(guī)則艺普。
%%--------------------------------------------------------------------
%%
%% [ACL](https://github.com/emqtt/emqttd/wiki/ACL)
%%
%% -type who() :: all | binary() |
%% {ipaddr, esockd_access:cidr()} |
%% {client, binary()} |
%% {user, binary()}.
%%
%% -type access() :: subscribe | publish | pubsub.
%%
%% -type topic() :: binary().
%%
%% -type rule() :: {allow, all} |
%% {allow, who(), access(), list(topic())} |
%% {deny, all} |
%% {deny, who(), access(), list(topic())}.
%%
%%--------------------------------------------------------------------
%% 允許'dashboard'用戶訂閱 '$SYS/#'
{allow, {user, "dashboard"}, subscribe, ["$SYS/#"]}.
%% 允許本機用戶發(fā)布訂閱全部主題
{allow, {ipaddr, "127.0.0.1"}, pubsub, ["$SYS/#", "#"]}.
%% 拒絕用戶訂閱'$SYS#'與'#'主題
{deny, all, subscribe, ["$SYS/#", {eq, "#"}]}.
%% 上述規(guī)則無匹配,允許所有
{allow, all}.
可以根據實際情況修改,比如添加一個用戶名為“l(fā)ucien”缠借,ip地址為“192.168.1.100”的用戶
%% 允許'dashboard'用戶訂閱 '$SYS/#'
{allow, {user, "dashboard","lucien"}, subscribe, ["$SYS/#"]}.
%% 允許本機用戶發(fā)布訂閱全部主題
{allow, {ipaddr, "127.0.0.1","192.168.1.100"}, pubsub, ["$SYS/#", "#"]}.
%% 拒絕用戶訂閱'$SYS#'與'#'主題
{deny, all, subscribe, ["$SYS/#", {eq, "#"}]}.
%% 上述規(guī)則無匹配,允許所有
{allow, all}.