jetLinks协议发布流程(源码)解读
jetlinks是免费的开源物联网框架,这里不做过多介绍,源码地址:https://github.com/jetlinks
协议开发流程
协议开发流程有官方说明和实例,后端同学下下来就能看懂,地址:http://doc.jetlinks.cn/
协议生效流程
首先需将自定义协议包发布到jetlinks中,具体发布流程,在上述地址中都有文档说明。
协议发布
自动发布已上传的协议
在后端服务第一次或重启的时候,会自动加载已发布的协议包,并进行解析,自动加载的类为:AutoDownloadJarProtocolSupportLoader
源码如下:
后面的webClient部分,就是如果文件不存在,则直接在AbsolutePath下创建并写好协议包,但是这里的协议包大小是0KB,所以博主也没弄清楚怎么回事,而后续调用的super.load(newDef)方法就是接下来主动发布中的方法。
主动或重新发布已上传的协议
首先方法入口,如下图所示:
调用该接口方法的地方就在web里重新发布(发布)按钮,点进deploy方法,如图所示的逻辑:
接下来就是重点的load方法,此处方法实现在SpringProtocolSupportLoader类中,上面所说的自动加载最终调用的也是此方法,如下图所示:
加载的各种认证器和编解码器 都会以CompositeProtocolSupport的数据结构存储,如下图所示:
总结:其实就是通过数据库+反射进行协议包的发布。