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<SocketChannel>() {//创建一个通道测试对象

方法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进行事务处理,两种是从不同的角度解释的。

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值