MENU

Netty内置常用Handler

May 15, 2022 • 学习笔记

Netty 内置常用Handler

SSL/TLS

SslHandler : 使用SSL和TLS这样的安全协议,它们层叠在其他协议之上,用以实现数据安全。

HTTP

HttpRequestEncoder : 将HttpRequest,HttpContent和LastHttpContent消息编码为字节。
HttpResponseEncoder : 将HttpResponse,HttpContent和LastHttpContent消息编码为字节。
HttpRequestDecoder : 将字节解码为HttpRequest,HttpContent和LastHttpContent。
HttpResponseDecoder : 将字节解码为HttpResponse,HttpContent和LastHttpContent。

聚合HTTP消息

由于HTTP 的请求和响应可能由许多部分组成,因此你需要聚合它们以形成完整的消息。为了消除这项繁琐的任务,Netty 提供了一个聚合器,它可以将多个消息部分合并为FullHttpRequest 或者FullHttpResponse 消息。通过这样的方式,你将总是看到完整的消息内容。

HttpClientCodec : 客户端添加
HttpServerCodec : 服务端添加
HttpObjectAggregator : 将HTTP消息的多个部分合成一条完整的HTTP消息

其他

IdleStateHandler : 连接空闲时间过长,会发送IdleStateEvent事件。另一端通过实现Handler的中的`userEventTriggered()`方法处理心跳包。
ReadTimeoutHandler : 指定时间内没有接收到如何的入站数据,抛出ReadTimeoutException异常,并关闭Channel
WriteTimeoutHandler : 指定时间内没有接收到如何的出站数据的写入,抛出WriteTimeoutException异常,并关闭Channel
DelimiterBasedFrameDecoder : 使用任何用户提供的分隔符来提取帧的通用解码器。
FixedLengthFrameDecoder : 提取在调用构造函数时的定长帧。
ChunkedWriteHandler : 将大型文件从文件系统复制到内存(DefaultFileRegion进行大型文件传输)。
WebSocketServerProtocolHandler : 处理websocket协议,将HttpServerCodec转为websocketFrame,处理websocket握手。