创建两个NioEventLoopGroup实例:NioEventLoopGroup是个线程组,它包含了一组NIO线程,专门用于网络时间的处理,实际上它们就是Reactor线程组。创建两个的原因是一个用于服务器接受客户端请求,一个用于进行SocketChannel的网络读写。
创建ServerBootstrap对象,它是Netty用于启动NIO服务端的辅助启动类,目的是降低服务端的开发复杂度,
进行服务端启动辅助类配置。ServerBootstrap.group().channel().option().childHandler();
group():将两个NIO线程组当做入参传递到ServerBootstrap中;
channel():设置创建的Channel;
option():配置NioServerSocketChannel的TCP参数;
childHandler():绑定I/O事件的处理类,它的作用类似于Reactor模式中的Handler类,主要用于处理网络I/O事件,例如记录日志,对消息进行编解码等。
服务端启动辅助类配置完成之后,调用它的bind方法绑定监听端口,随后,调用它的同步阻塞方法sync()等待绑定操作完成。完成之后Netty会返回一个ChannelFuture,主要用于异步操作的通知回调。