handler()和childHandler()、childOption()和option有什么区别

* */                                                                                                                                           
EventLoopGroup bossGroup = new NioEventLoopGroup();
EventLoopGroup workerGroup = new NioEventLoopGroup();
try {
//创建服务器的启动对象,配置参数
ServerBootstrap serverBootstrap = new ServerBootstrap();
//使用链式编程进行配置
serverBootstrap.group(bossGroup,workerGroup)//设置两个线程组
        .channel(NioServerSocketChannel.class)//使用NioSocketChannel 作为服务器
        .option(ChannelOption.SO_BACKLOG,128)//设置线程队列得到链接个数
        .childOption(ChannelOption.SO_KEEPALIVE,true)//设置保持链接活动连接状态
        .childHandler(new ChannelInitializer() {//创建一个通道测试对象

方法serverBootStrap.group()

/**
 * Set the {@link EventLoopGroup} for the parent (acceptor) and the child (client). These
 * {@link EventLoopGroup}'s are used to handle all the events and IO for {@link ServerChannel} and
 * {@link Channel}'s.
 */
public ServerBootstrap group(EventLoopGroup parentGroup, EventLoopGroup childGroup) {

       childHandler()和childOption()都是给workerGroup (也就是group方法中的childGroup参数)进行设置的,option()和handler()都是给bossGroup(也就是group方法中的parentGroup参数)设置的。

        还有一种方法说option()和handler()是在server启动时进行设置和调用,childHandler()和childOption()是在连接建立是设置和调用的。其实都是对的。

        bossGroup是在服务器一启动就开始工作,负责监听客户端的连接请求。当建立连接后就交给了workGroup进行事务处理,两种是从不同的角度解释的。

 

你可能感兴趣的:(Netty)