主页

索引

模块索引

搜索页面

钩子(Hook)设计

EMQ 消息服务器在客户端上下线、主题订阅、消息收发位置设计了扩展钩子(Hook):

//Hook类型
client.connected
client.subscribe
client.unsubscribe
session.subscribed
session.unsubscribed
message.publish
message.delivered
message.acked
client.disconnected

The EMQ broker uses the Chain-of-responsibility_pattern to implement hook mechanism. The callback functions registered to hook will be executed one by one:

                --------  ok | {ok, NewAcc}   --------  ok | {ok, NewAcc}   --------
(Args, Acc) --> | Fun1 | -------------------> | Fun2 | -------------------> | Fun3 | --> {ok, Acc} | {stop, Acc}
                --------                      --------                      --------
                   |                             |                             |
              stop | {stop, NewAcc}         stop | {stop, NewAcc}         stop | {stop, NewAcc}

一个hook的callback函数返回值有以下几种:

ok
{ok, NewAcc}
stop
{stop, NewAcc}

相关模块:

emqttd,       // hook APIs defined
emqttd_hook   // implemented
emq_plugin_template   // provides the examples for hook usage

主页

索引

模块索引

搜索页面