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生命周期:
Netty+Websocket 初入理解_第1张图片

Handler的生命周期
Netty+Websocket 初入理解_第2张图片

SslHandler 实现SSL/TLS加密解密
大多数情况下,SslHandler都作为ChannelPipeline的第一个Handler。

HttpServerCodec Http消息编码器
增加HTTP消息编码器,HttpServerCodec,消息聚合HttpObjectAggregator(512)。最大值为512kb。

WebSocket数据传输:
Netty+Websocket 初入理解_第3张图片
空闲连接以及超时:
Netty+Websocket 初入理解_第4张图片

你可能感兴趣的:(笔记)