基于 Netty 构建 HTTP/HTTPS/WebSocket 应用程序
名称 | 描述 |
---|---|
HttpServerCodec | 将 HttpRequest,HttpContent,LastHttpContent 编码为字节 将字节解码为 HttpRequest,HttpContent,LastHttpContent |
HttpObjectAggregator | 将一个 HttpMessage 和跟随它的多个 HttpContent 聚合为单个 FullHttpRequest 和 FullHttpResponse |
WebSocketServerProtocolHandler | 升级 http 请求为 websocket 请求 |
空闲连接和超时
检测空闲连接以及超时对于及时释放资源来说至关重要,下面是一些用于检测空闲连接和超时的ChannelHandler
名称 | 描述 |
---|---|
IdleStateHandler | 当连接空闲时间太长时,将会触发一个 IdleStateEvent 事件,我们可以重写ChannelInboundHandlerAdapter#userEventTriggered 方法来处理该事件 |
ReadTimeoutHandler | 在指定时间没有读数据,则抛出一个 ReadTimeoutException ,并关闭对应的 channel 我们可以重写 ChannelHandler#exceptionCaught 方法来检测该异常 |
WriteTimeoutHandler | 在指定时间没有写数据, 则抛出一个 WriteTimeoutException ,并关闭对应的 channel 我们可以重写 ChannelHandler#exceptionCaught 方法来检测该异常 |
在实践中我们用的最多的是 IdleStateHandler
参考博客
[1]https://my.oschina.net/7001/blog/1480153