[发明专利]一种基于路灯硬件平台实现物联网设备高并发通信的方法有效
申请号: | 201811035160.4 | 申请日: | 2018-09-06 |
公开(公告)号: | CN109309599B | 公开(公告)日: | 2020-09-22 |
发明(设计)人: | 董敏;池孙煌;毕盛 | 申请(专利权)人: | 华南理工大学 |
主分类号: | H04L12/26 | 分类号: | H04L12/26;H04L1/00;H04L29/08 |
代理公司: | 广州市华学知识产权代理有限公司 44245 | 代理人: | 冯炳辉 |
地址: | 510640 广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 路灯 硬件 平台 实现 联网 设备 并发 通信 方法 | ||
1.一种基于路灯硬件平台实现物联网设备高并发通信的方法,其特征在于,包括以下步骤:
1)构建路灯设备消息类;
2)构建消息的解码器完成缓冲区数据流到设备消息类的转换;其中,结合Netty提供的帧长度解码器LengthFieldBasedFrameDecoder来构建自定义的消息解码器完成缓冲区数据流到设备消息类的转换,包括以下步骤:
2.1)将自定义的设备消息解码器类继承帧长度解码器类并构建包含最大帧长度、长度数据位偏移量、长度数据位所占字节数、长度调整量、初始跳转字节这5个参数的构造方法,并在构造函数中调用父类同样包含这5个参数的构造方法;
2.2)在自定义的设备消息解码器中重写父类的解码方法,在解码方法中通过调用父类的解码方法将得到不受TCP半包粘包影响的、完整的数据流;
2.3)对数据流进行非空判断,如果为空,说明没有成功收到数据流,则解码方法直接返回空;
2.4)新建路灯设备消息类并将数据流中的信息读取到路灯设备消息类中,按照私有协议的顺序以及各部分规定的字节数依次读取识别码、功能号、包长、设备识别号,之后根据包长构建容纳包体的数组,并将相应长度的数据读取到包体数组中,最后读取校验码和结束码;
3)构建数据流的编码器完成设备消息类到缓冲区数据流的转换;其中,结合Netty提供的消息转消息编码器MessageToMessageEncoder来构建数据流编码器完成设备消息类到缓冲区数据流的转换,包括以下步骤:
3.1)将自定义的数据流编码器类继承消息转消息编码器类并重写编码方法;
3.2)通过内存分配得到一个数据流缓冲区;
3.3)根据私有协议的顺序将传入的路灯设备消息类中的数据写入到数据流缓冲区中;
4)通过添加校验处理器完成设备消息的校验;
5)通过添加心跳包处理器完成路灯设备在线状态的维护与心跳包的回复;
6)通过业务处理器完成设备消息的功能识别与业务分发。
2.根据权利要求1所述的一种基于路灯硬件平台实现物联网设备高并发通信的方法,其特征在于:在步骤1)中,所述的路灯设备消息类是根据路灯设备的私有协议来构建的一个类,其成员变量包括消息头、消息体和消息尾,其中,所述消息头包括识别码、功能号、包长、设备识别码,所述消息体是指具体的业务信息,所述消息尾包括校验码和结束码。
3.根据权利要求1所述的一种基于路灯硬件平台实现物联网设备高并发通信的方法,其特征在于:在步骤4)中,通过添加校验处理器对步骤2)中得到的设备消息对象进行CRC校验,以检验是否正确收到路灯设备发来的数据,若校验错误则抛出异常,断开与路灯设备间的连接,并且不将设备消息对象继续透传,即不执行后续的步骤。
4.根据权利要求1所述的一种基于路灯硬件平台实现物联网设备高并发通信的方法,其特征在于:在步骤5)中,通过添加心跳包处理器,对校验通过的设备消息对象进行功能判定,如果是心跳包,则构建回复心跳包发送给路灯设备,之后继续判定该设备是否已在线,如果没有在线,需将其登录注册,登录注册后的设备如果发生掉线,心跳包处理器将会注销该设备。
5.根据权利要求1所述的一种基于路灯硬件平台实现物联网设备高并发通信的方法,其特征在于:在步骤6)中,通过业务处理器完成消息的功能识别与业务分发,包括如下步骤:
6.1)在程序初始化的时候创建一个业务线程池;
6.2)在业务处理器中对设备消息对象的功能码进行判定,选择与功能码对应的服务类对象;
6.3)将设备消息对象与对应的服务类对象封装成任务类;
6.4)将封装后的任务类分发到6.1)创建的业务线程池中;
当路灯设备发送的数据到达服务端后,首先通过自定义的设备消息解码器类得到完整的路灯设备消息类对象,然后对该对象进行后续的数据包校验、心跳包回复、业务服务类的分配;业务层的开发人员只需构建相应的业务服务类并为消息指定具体的服务类即可完成后续的业务层开发;当要发送数据包到路灯设备上的时候,只需要根据路灯设备识别码找到对应的通道,通过私有协议构建路灯设备消息类对象,并写入通道中即可。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华南理工大学,未经华南理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811035160.4/1.html,转载请声明来源钻瓜专利网。