插件(Plugin)设计

插件(Plugin)设计

插件是一个可以被动态加载的普通 Erlang 应用(Application)。插件主要通过钩子(Hook)机制扩展服务器功能,或通过注册扩展模块方式集成认证访问控制。

emqx_plugins 模块实现插件机制,提供加载卸载插件 API :

-module(emqx_plugins).

-export([load/1, unload/1]).

%% @doc Load a Plugin
load(PluginName :: atom()) -> ok | {error, any()}.

%% @doc UnLoad a Plugin
unload(PluginName :: atom()) -> ok | {error, any()}.

用户可通过 ./bin/emqx_ctl 命令行加载卸载插件:

./bin/emqx_ctl plugins load \<plugin name>

./bin/emqx_ctl plugins unload \<plugin name>

开发者请参考模版插件: http://github.com/emqx/emqx_plugin_template 插件(Plugin)设计 - 图1 (opens new window)