物联网架构成长之路(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 清空之前编译的结果,注意之前没有停止的先进行停止服务。
- ./_rel/mqttd/bin/meqqd stop
- rm -rf _rel
- make clean
- 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
这里我通过网页进行加载插件。
到这里,插件的创建就完成了。
下一小节,讲一下插件里的一些配置。
物联网架构成长之路(4)-EMQ插件创建的更多相关文章
- 物联网架构成长之路(5)-EMQ插件配置
1. 前言 上一小结说了插件的创建,这一节主要怎么编写代码,以及具体流程之类的.2. 增加一句Hello World 修改 ./deps/emq_plugin_wunaozai/src/emq_plu ...
- 物联网架构成长之路(31)-EMQ基于HTTP权限验证
看过之前的文章就知道,我之前是通过搞插件,或者通过里面的MongoDB来进行EMQ的鉴权登录和权限验证.但是前段时间发现,还是通过HTTP WebHook 方式来调用鉴权接口比较适合实际使用.还是实现 ...
- 物联网架构成长之路(33)-EMQ数据存储到influxDB
一.前言 时隔一年半,技术变化特别快,学习也要跟上才行.以前写过EMQ数据转存问题,当时用了比较笨的方法,通过写插件的方式,把MQTT里面的数据发送到数据库进行存储.当时也是为了学习erlang和em ...
- 物联网架构成长之路(3)-EMQ消息服务器了解
1. 了解 物联网最基础的就是通信了.通信协议,物联网协议好像有那么几个,以前各个协议都有优劣,最近一段时间,好像各大厂商都采用MQTT协议,所以我也不例外,不搞特殊,采用MQTT协议,选定了协议,接 ...
- 物联网架构成长之路(6)-EMQ权限控制
1. 前言 EMQTT属于一个比较小众的开源软件,很多资料不全,很麻烦,很多功能都是靠猜测,还有就是看官方提供的那几个插件,了解. 2. 说明 上一小节的插件 emq_plugin_wunaozai ...
- 物联网架构成长之路(7)-EMQ权限验证小结
1. 前言 经过前面几小节,讲了一下插件开发,这一小节主要对一些代码和目录结构进行讲解,这些都是测试过程中一些个人经验,不一定是官方做法.而且也有可能会因为版本不一致导致差异. 2. 目录结构 这个目 ...
- 物联网架构成长之路(25)-Docker构建项目用到的镜像1
0. 前言 现在项目处于初级阶段,按照规划,先构建几个以后可能会用到的Image,并上传到阿里云的Docker仓库.以后博客中用到的Image,大部分都会用到这几个基础的Image,构建一个简单的物联 ...
- 物联网架构成长之路(32)-SpringBoot集成MQTT客户端
一.前言 这里虽然是说MQTT客户端.其实对于服务器来说,这里的一个具有超级权限的MQTT客户端,就可以做很多事情.比如手机APP或者网页或者第三方服务需要发送数据到设备,但是这些又不是设备,又不能让 ...
- 物联网架构成长之路(8)-EMQ-Hook了解、连接Kafka发送消息
1. 前言 按照我自己设计的物联网框架,对于MQTT集群中的所有消息,是要持久化到磁盘的,这里采用一个消息队列中间件Kafka作为数据缓冲,缓冲结果存到数据仓库中,以供后续作为数据分析.由于MQTT集 ...
随机推荐
- 【Java】 剑指offer(43) 从1到n整数中1出现的次数
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数.例 ...
- 定制库到maven库
有一些jar不支持maven,这个时候就可以使用下面的处理方式. kaptcha,它是一个流行的第三方Java库,它被用来生成 “验证码” 的图片,以阻止垃圾邮件,但它不在 Maven 的中央仓库中. ...
- java语言打印上三角和下三角,进一步得到九九乘法表
关于下面两种图形的打印问题 ***** 与 * **** ** *** *** ** **** * ***** 一:程序 1.先打印下三角 2.结果 3.后打印上三角 4.结果 二:知识点 1.f ...
- python模块——PrettyTable
python模块——PrettyTable 一. 简介 Python通过prettytable模块将输出内容如表格方式整齐输出,可用来生成美观的ASCII格式的表格,十分实用. python本身并不内 ...
- Flutter常用组件(Widget)解析-Scaffold
实现一个应用基本的布局结构. 举个栗子: import 'package:flutter/material.dart'; void main() => runApp(MyApp()); clas ...
- VM浏览器不能访问
Issue: when start WAS DManager&WAS AppServer then it could be reach in VM local browser but coul ...
- loj#2016. 「SCOI2016」美味
题目链接 loj#2016. 「SCOI2016」美味 题解 对于不带x的怎么做....可持久化trie树 对于带x,和trie树一样贪心 对于答案的二进制位,从高往低位贪心, 二进制可以表示所有的数 ...
- [TJOI2018]异或
Description: 现在有一颗以1为根节点的由n个节点组成的树,树上每个节点上都有一个权值v 现在有Q次操作,操作如下: 1.1 x y :查询节点x的子树中与y异或结果的最大值 2.2 x ...
- java删除文件操作代码备忘
/** * 删除目录下的所有文件及其自身 * @param file */ private static void deleteFile(File file) { if (file.exists()) ...
- bzoj 4128 矩阵求逆
/************************************************************** Problem: 4128 User: idy002 Language: ...