### 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序列化