企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
### SimpleChannelInboundHandler && ChannelInboundHandler > 为什么我们在客户端使用的是SimpleChannelInboundHandler,而服务端使用ChannelInboundHandlerAdapter呢?这和两个因素的相互作用有关:业务逻辑如何处理消息以及Netty如何管理资源 在客户端,当channelRead0\(\)方法完成时,你已经有了传入消息,并且已经处理完它了。当该方法返回时,SimpleChannelInboundHandler负责释放指向保存该消息的ByteBuf的内存引用。 在服务端需要将传入消息回送给发送者,而write\(\)操作是异步的,channelRead\(\)方法返回后可能仍然没有完成。为此,扩展了ChannelInboundHandlerAdapter,其在这个时间点上不会释放消息。 消息在EchoServerHandler的channelReadComplete\(\)方法中,当writeAndFlush\(\)方法被调用时被释放