Netty高级功能(四):Netty事件触发
2019-10-04 本文已影响0人
雪飘千里
1、 ChannelHandler中 channelRead VS channelReadComplete
channelRead 是只有解码成功(ByteToMessageDecoder),才会调用后续ChannelHandler的channelRead方法;
channelReadComplete方法属于透传调用,即无论是否有完整的消息被解码成功,只要读到消息,都会触发后续ChannelHandler的channelReadComplete方法调用;
所以,我们的业务都要在 ChannelHandler中 的channelRead方法中处理。
channelReadComplete方法的调用机制是,只要底层的SockerChannel读到了ByteBuf,就会触发一次调用,对于一个完整的业务消息,可能会多次调用。