物联网架构成长之路(4)-EMQ插件创建
1. 说明
以下用到的知识,是建立在我目前所知道的知识领域,以后如果随着知识的拓展,不一定会更新内容。由于不是EMQ公司的人,EMQ的文档又很少,很多知识点都是靠猜的。
2. 一些资料
架构设计 http://emqtt.com/docs/v2/design.html
扩展插件 http://emqtt.com/docs/v2/plugins.html 一些自带的插件
3. 写插件
经过上一篇博客讲解的,编译_relx后,在deps目录下就会包含了所有依赖包以及插件包,在这个目录下有个emq_plugin_template,这个就是插件模版
cp -r emp_plugin_template emp_plugin_wunaozai
在./emq-relx/relx.config 文件中 52行增加
{emq_plugin_wunaozai, load}
在./emq-relx/data/loaded_plugins 文件 可以配置一些默认启动的插件
在./emq-relx/Makefile 文件中 13行,可以增加emq_plugin_wunaozai 这样在make的时候会调用编译
先 rm -rf _rel 清空之前编译的结果,注意之前没有停止的先进行停止服务。
1 ./_rel/mqttd/bin/meqqd stop 2 rm -rf _rel 3 make clean 4 make
嗯,这个时候肯定编译不过,因为刚才复制的 emq_plugin_wunaozai 里面很多文件都要进行修改。
下图是修改前
具体修改如下:
(1) 首先把所有的文件名都修改,具体如下
其中 ebin 目录通过 make clean 进行清除即可。
(2) 修改Makefile 文件
可以修改项目名称,描述,版本之类的信息,后面插件功能变多了的话, 就可以在这里增加必要的依赖包。
(3)修改./etc/emq_plugin_wunaozai.config 配置文件,这些就是一些配置信息。进行修改。
(4)修改./test/emq_plugin_wunaozai_SUITE 这个是单元测试文件,进行修改。
(5)修改./src/*.erl 所有文件
上述文件的修改,还是比较简单的,就是把template改为wunaozai即可。没什么难度,编译不通过,就表示没有修改全。
4. 编译插件
回到 emq_relx 目录,执行rm -rf _rel && make clean && make 然后就看效果了。看到如下界面就表示插件编译通过。这个过程,可能会出现各式各样的编译不通过,就是插件修改的不彻底,再看看,就可以了。
如下图所示,就是插件编译好了。
我们启动一下emqttd
./_rel_emqttd/bin/emqttd console
默认我们自己的插件是没有加载的,可以通过Dashboard网页管理界面进行加载,也可以通过 emqttd_ctl plugin load emq_plugin_wunaozai
这里我通过网页进行加载插件。
到这里,插件的创建就完成了。
下一小节,讲一下插件里的一些配置。
作者:无脑仔的小明 出处:http://www.cnblogs.com/wunaozai/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 如果文中有什么错误,欢迎指出。以免更多的人被误导。有需要沟通的,可以站内私信,文章留言,或者关注“无脑仔的小明”公众号私信我。一定尽力回答。 |