Netty重写SimpleChannelInboundHandler后的ChannelRead0方法从未被调用?
public class RequestHandler extends SimpleChannelInboundHandler<MessageProtocol<MessageRequest>> {
@Override
protected void channelRead0(ChannelHandlerContext channelHandlerContext, MessageProtocol<MessageRequest> protocol)
throws Exception {
// 请求过来这里的代码从未被调用
// 业务代码....
}
}
// .........
.childHandler(new ChannelInitializer<SocketChannel>() {
@Override
protected void initChannel(SocketChannel socketChannel) {
socketChannel.pipeline()
// 协议编码
.addLast(new StringEncoder())
// 协议解码
.addLast(new StringDecoder())
// 请求处理器
.addLast(new RequestHandler());
}
}).childOption(ChannelOption.SO_KEEPALIVE, true);
// .........
希望结果:重写后的方法【RpcRequestHandler#channelRead0】每次有新请求都被调用