【物联网07】创建EMQ插件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34614756/article/details/85702953

高手博客传送门(https://www.cnblogs.com/wunaozai/p/8120075.html)

接下来是我参照高手博客的步骤

做以下步骤的前提是我已经成功编译了EMQ3.0,并且可以在windows端通过IP和端口来访问EMQ的DashBoard。
1.进入/emq-relx/deps目录,里面有个emqx_plugin_template是插件模板
执行以下命令:

cp -r emqx_plugin_template emqx_plugin_kafka		//复制一份出来进行修改
cd ..							//返回上级目录
vi relx.config			//修改./emq-relx/relx.config

----------------------------------------------------------------------------
{emqx_plugin_kafka,load}		//文件第52行增加该语句
-----------------------------------------------------------------------------

cd /usr/local/emq-relx/data/
vi loaded_plugins			//配置默认启动插件

----------------------------------------------------------
emqx_plugin_kafka.				//末尾添加这句
-----------------------------------------------------------

cd /usr/local/emq-relx
vi Makefile

--------------------------------------------------------------------------
emqx-plugin-kafka			//在第13行OUR_APPS =...后面添加该语句
---------------------------------------------------------------------------

rm -rf _rel
make clean
make

此时出现的问题

第一次make时出现的问题

继续执行以下步骤

2.修改emqx_plugin_kafka插件
进入/usr/local/emq-relx/deps/emqx_plugin_kafka/目录下:执行make clean

  • 修改etc文件夹:emqx_plugin_template.config标题和内容的“template”为“kafka”
  • 修改src文件夹:首先修改文件名;
    然后修改三个demo中的引用为修改后的名字,如:-module(emqx_acl_demo_kafka).;
    最后内容中给的“template”修改为“kafka”;

文件名修改前
文件名修改前
文件名修改后:
文件名修改后

  • 修改test文件夹:emqx_plugin_template_SUITE.erl文件名与文件中的“template”修改为“kafka”

3.修改/usr/local/emq-relx/deps/emqx_plugin_kafka/中Makefile文件内容中的“template”修改为“kafka”

4.继续执行下列命令

cd /usr/local/emq-relx
make

出现和上面相同的问题(该问题是因为我移动了安装好后的otp_src_21.0却没有设置环境变量)
解决如下:

vi /etc/profile		//设置以下环境变量
---------------------------------------------------------------
#erl enviroment
export PATH=/home/erl/bin/:$PATH

#emq enviroment
export PATH=/usr/local/emq-relx/_rel/emqx/bin/:$PATH
----------------------------------------------------------------

cd .. (返回local目录下)
git clone git://github.com/rebar/rebar.git
cd rebar
./bootstrap
vi /etc/profile

------------------------------------
//增加的内容
#rebar enviroment
export PATH=/usr/local/rebar:$PATH
-------------------------------------

//接下来重新编译
cd /usr/local/emq-relx
make clean
make

编译成功后如图:
在这里插入图片描述
6.启动EMQ,打开windows浏览器查看,可以看到我们自己的插件已经被添加进去了。

在这里插入图片描述

7.测试一下

修改:/usr/local/emq-relx/deps/emqx_plugin_kafka/src/emqx_plugin_kafka.er
添加语句: io:format(“start kafka Hello World~n,[]”).

回到目录:/usr/local/emq-relx/deps/emqx_plugin_kafka/
执行:make clean && make

此时生成新的ebin文件
执行:cp -r ebin /usr/local/emq-relx/_rel/emqx/lib/emqx_plugin_kafka-3.0/
(覆盖原来的ebin)

执行:emqx console
打印了我们刚才添加输出的语句:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_34614756/article/details/85702953