企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] ## 1. SimpleChannelInboundHandler 与 ChannelInboundHandler 业务逻辑如何处理消息以及 Netty 如何管理资源。 1. 在客户端,当 channelRead0()方法完成时,你已经有了传入消息,并且已经处理完它了。当该方法返回时, SimpleChannelInboundHandler 负责释放指向保存该消息的 ByteBuf 的内存引用。 2. 服务器端,在 EchoServerHandler 中,你仍然需要将传入消息回送给发送者,而 write()操作是异步的,直到 channelRead()方法返回后可能仍然没有完成(如代码清单 2-1 所示)。为此, EchoServerHandler扩展了 ChannelInboundHandlerAdapter,其在这个时间点上不会释放消息。消息在 EchoServerHandler 的 channelReadComplete()方法中,当 writeAndFlush()方法被调用时被释放