基于Netty封装的自定义互联网电视http协议方法与流程

文档序号:11930410阅读:1279来源:国知局
基于Netty封装的自定义互联网电视http协议方法与流程

技术领域

本发明涉及互联网电视领域,更具体的说,它涉及用于基于Netty封装的自定义互联网电视http协议方法。



背景技术:

HTTP(超文本传输协议)协议是建立在TCP传输协议之上的应用层协议,它的发展是万维网协会和Internet工作小组IETF合作的结果。HTTP是一个属于应用层的面向对象的协议,由于其简洁、快速的方式,适用于分布式超媒体信息系统。普通的http应用服务端都是利用,struct、servlet、spring等技术部署到tomcat、Jboss等容器中。但是普通http协议安全级别低,比较容易被盗取阅读,且普通的基于struts,servlet的http服务器,处理客户端请求时,是不支持异步非阻塞的,故效率比较低下。



技术实现要素:

本发明克服了现有技术的不足,提供了一种处理请求效率高,安全级别高的基于Netty封装的自定义互联网电视http协议方法,从而更符合现在注重安全的趋势。

本发明的技术方案如下:

基于Netty封装的自定义互联网电视http协议方法,具体包括如下步骤:

101)封装信息步骤:以Netty作为核心框架,将关键信息封装到自定义http协议的包头中;所述自定义http协议包括主线程池、子线程池和请求接收器,所述主线程池只用于客户端的登陆、握手和安全认证,一旦链路建立成功,就将链路注册到后端子线程池的IO线程上,由IO线程负责后续的IO操作;所述子线程池以worker线程池为主,其包括执行具体工作的handler,编解码器;所述请求接收器,用于监听来自客户端的连接请求;

102)第一次加密步骤:在步骤101)后,利用包头的秘钥对http封装的信息进行第一次内容加密;

103)第二次加密步骤:在步骤102)处理后的http封装的信息转换为二进制码进行第二次内容加密,并传输出去。

进一步的,所述http请求内容加密前是一个json字符串。

进一步的,所述步骤101)中关键信息为,请求内容对应的身份信息,将这些信息写入请求包头中,作为通信的身份识别。

进一步的,身份信息包括接口地址和设备信息。

进一步的,所述第一次内容加密用设备对应的唯一秘钥,作为包头的秘钥进行RSA加密。

进一步的,所述连接请求都会被存储到事件池map <String ,Context> 中,map为事件池表,String为事件唯一ID,Context为请求的上下文。

本发明相比现有技术优点在于:本发明设计合理,成本节约,可以大大提高了服务器端http协议的收发速度。通过Netty封装自定义http协议,可以根据业务需要定制自己的规则。Netty封装自定义http协议使得安全性达到另一个高度,内容的保密性得到了很好的保护,不像普通的http协议那么容易被破解和阅读,并且可以进行长期稳定的运行,为后期维护减少了很大工作量。

附图说明

图1为本发明基于Netty封装的自定义互联网电视http协议方法的处理流程图;

图2为本发明基于Netty封装的自定义互联网电视http协议方法的传输内容加密图;

图3为本发明基于Netty封装的自定义互联网电视http协议方法的具体加密处理流程图;

图4为本发明基于Netty封装的自定义互联网电视http协议方法的自定义协议框架图;

图5为本发明基于Netty封装的自定义互联网电视http协议方法的非阻塞事件处理流程图。

具体实施方式

下面通过具体实施例,并结合附图,对本发明的技术方案作进一步的具体说明。应当理解,本发明的实施并不局限于下面的实施例,对本发明所做的任何形式上的变通和 / 或改变都将落入本发明保护范围。

如图1所示,基于Netty封装的自定义互联网电视http协议方法,具体包括如下步骤:

101)分装信息步骤:以Netty作为核心框架,将关键信息封装到自定义http协议的包头中,所述关键信息为,请求内容对应的接口地址和设备信息等身份信息,将这些信息写入请求包头中,去作为通信的身份识别。

102)第一次加密步骤:在步骤101)后,利用包头的秘钥对http请求内容进行第一次内容加密,加密前是一个json字符串,json是一种轻量级的数据交换格式,此次内容加密用设备对应的唯一秘钥,作为包头的秘钥进行RSA加密,即公钥加密方法。

103)第二次加密步骤:在步骤102)处理后的http封装的信息转换为二进制码进行第二次内容加密,并传输出去。即如图2所示,一份请求内容A要进行传输,则自定义http协议加密,首先对http请求包头:将MSG即请求接口二级地址,和Device_id即设备信息等身份信息写入请求包头中。再对http请求内容一次加密,用设备对应的唯一秘钥进行RSA加密,即公钥加密方法。最后进行http请求内容二次加密,将第一次加密后的字符串进行转换,转成二进制码进行传输。这样就能对通过自定义http协议的内容在网络上传输的时候就乱码,无法阅读。只有持有私钥的用户,和持有公钥的服务端才能对信息进行加解密,然后才能阅读和解析。

如图3至图5所示,所述自定义http协议包括主线程池、子线程池和请求接收器,所述主线程池只用于客户端的登陆、握手和安全认证,一旦链路建立成功,就将链路注册到后端子线程池的IO线程上,由IO线程负责后续的IO操作,所述子线程池以worker线程池为主,即worker线程池为子线程池的主线程,其包括执行具体工作的handler即handler用于异步消息的处理执行,编解码器,所述请求接收器,用于监听来自客户端的连接请求,并且对于每一次通过自定义http协议进行连接请求进行收发,都会被存储到事件池map <String ,Context> 中,map为事件池表,String为事件唯一ID,Context为请求的上下文。只要对线程收发、处理过程中维护处理好这个事件池,就可以实现自定义的非阻塞事件处理线程池。即一个客户端请求过来,先由mainReactor即主线程池与客户端的建立链路。再由Acceptor即请求接收器接收来自客户端的请求,接着主线程池将Acceptor接受到的线程,分配给SubReactor即子线程池,由子线程池将每个请求事件,放入到worker线程池请求队列中。所述子线程池中由专门的handler协议,对身份信息进行合法性校验,并且线程池按先进先出的顺序,将请求队列中的请求事件,调度到线程池的工作线程中执行。所述的工作线程,则专门解码解析内容的合法性;然后处理具体业务;最后将返回内容进行加密。处理完后线程最后会回收给线程池;返回信息回写给事件池,所述事件池包括有监听器,监听器监听到就绪状态的事件,就可以直接通过请求接收器返回给客户端。最后关闭连接,完成一次任务。

以上所述的实施例只是本发明的一种较佳的方案,并非对本发明作任何形式上的限制,在不超出权利要求所记载的技术方案的前提下还有其它的变体及改型。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1