1 ServerBootstrap bootstrap = new ServerBootstrap(); 2 try { 3 bootstrap.group(bossGroup, workerGroup).channel(NioServerSocketChannel.class) 4 .childHandler(new ChannelInitializer() { 5 @Override 6 protected void initChannel(Channel ch) throws Exception { 7 ch.pipeline().addLast( 8 new HttpServerCodec(),new HttpObjectAggregator(LOCALPORT), // 将多个消息转换为单一的一个FullHttpRequest 9 new HttpRequestDecoder(), 10 new ServcerHandler() // 本身实现的Handler 11 ); 12 } 13 }).childOption(ChannelOption.AUTO_READ, false) 14 .bind(LOCALPORT).sync().channel().closeFuture().sync();
由于设置了bootstrap
childOption(ChannelOption.AUTO_READ, false)ide
因此在执行完spa
public void channelActive(ChannelHandlerContext ctx)code
方法后,不会自动执行blog
public void channelRead(ChannelHandlerContext ctx, Object msg) 方法;ip
须要在channelActive中添加这行语句才会调用channelRead方法:it
ctx.channel().read();pip