### SimpleChannelInboundHandler && ChannelInboundHandler
> 为什么我们在客户端使用的是SimpleChannelInboundHandler,而服务端使用ChannelInboundHandlerAdapter呢?这和两个因素的相互作用有关:业务逻辑如何处理消息以及Netty如何管理资源
在客户端,当channelRead0\(\)方法完成时,你已经有了传入消息,并且已经处理完它了。当该方法返回时,SimpleChannelInboundHandler负责释放指向保存该消息的ByteBuf的内存引用。
在服务端需要将传入消息回送给发送者,而write\(\)操作是异步的,channelRead\(\)方法返回后可能仍然没有完成。为此,扩展了ChannelInboundHandlerAdapter,其在这个时间点上不会释放消息。
消息在EchoServerHandler的channelReadComplete\(\)方法中,当writeAndFlush\(\)方法被调用时被释放
- 概述
- Netty&Tomcat的区别
- NIO基础知识
- 同步阻塞式IO
- 伪异步IO编程
- 同步IO之IO-multiplexing
- NIO基础概念
- NIO服务流程
- Netty基础知识
- NettyServer开发示例
- 零拷贝
- TCP粘包和拆包问题
- LineBasedFrameDecoder&StringDecoder
- 应用层消息处理方式
- ByteBuf
- ChannelHandler
- Netty核心组件
- Channel接口
- ChannelHandler
- ChannelInboundHandlerAdapter
- SimpleChannelInboundHandler
- SimpleChannelInboundHandler && ChannelInboundHandler
- ChannelInitializer
- EventLoop接口
- ChannelFuture接口
- ChannelPipeline接口
- 序列化
- JAVA序列化