handler()方法、childHandler()方法默认都允许添加一个ChannelHandler实现,这无法满足我们需要在ChannelPipeline中添加多个ChannelHandler的处理,如果需要实现这个过程,Netty提供了一个ChannelInitializer实现类,该类继承自ChannelInboundHandlerAdapter

    1. b.group(group).channel(NioServerSocketChannel.class) // 指定所使用的的NIO传输Channel
    2. .localAddress(new InetSocketAddress(port)) // 使用指定的端口设置套接字地址
    3. // 添加一个EchoServerHandler到子Channel的ChannelPipeline
    4. .childHandler(new ChannelInitializer<SocketChannel>() {
    5. @Override
    6. protected void initChannel(SocketChannel ch) throws Exception {
    7. // EchoServerHandler被标注为@Sharaable,所以我们可以总是使用同样的实例
    8. // 这里对于所有的客户端连接来说,都会使用同一个EchoServerHandler,因为其被标注为@Sharable。
    9. ch.pipeline().addLast(serverHandler);
    10. ch.pipeline().addLast(...)
    11. }
    12. });