本文主要是介绍Netty+Websocket 初入理解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Netty+Websocket 笔记
初入理解Netty+Websocket,需要了解其中的类和方法有什么作用,以下是自己总结的一些自己用到的:
Channel 通信通道,代表一个socket链接
ChannelFuture 执行异步操作
ChannelPipeline 管道:每个Channel都有关联的ChannelPipeline,提供handler链的容器
ChannelHandler 数据处理容器
Bootstrap 引导类,应用程序网络层配置的容器。
EventLoop 用于处理Channel的I/O操作,一个EventLoop处理多个Channel,一个EventLoopGroup包含多个EventLoop。
ChannelHandler分为入站(ChannelInHandler)和出站(ChannelOutHandler)两种,在引导程序的时候,被加入ChannelPipeline,被增加进入的顺序,决定了执行的顺序。
入站时,从ChannelPipeline的第一个ChannelInHandler执行到最后一个。出站时,从ChannelPipeline的最后一个ChannelOutHandler执行到第一个。在ChannelHandler之间传递的是ChannelHandlerContext,可以看作是ChannelHandler与ChannelPipeline之间的绑定关系。通过ChannelHandlerContext.channel().writeAndFlush写入消息,是到达ChannelPipeline尾部才写入消息,而ChannelHandlerContext.writeAndFlush写入消息,是到达下一个ChannelInHandler就写入消息。
SimpleChannelboundHandler 常见处理器,只需要继承SimpleChannelboundHandler即可。
Channel生命周期:
Handler的生命周期
SslHandler 实现SSL/TLS加密解密
大多数情况下,SslHandler都作为ChannelPipeline的第一个Handler。
HttpServerCodec Http消息编码器
增加HTTP消息编码器,HttpServerCodec,消息聚合HttpObjectAggregator(512)。最大值为512kb。
WebSocket数据传输:
空闲连接以及超时:
、
这篇关于Netty+Websocket 初入理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!