ServerBootstrapAcceptor
前面初始化channel的过程中向pipeline中添加了一个channelHandler,即ServerBootstrapAcceptor,它的作用主要是将worker组的channel进行注册,它的数据结构如下:
它的属性主要是通过ServerBootstrap启动类设置的,它的方法主要是channelRead()
方法,其过程如下:
1、 在第五十八篇中,当EventLoop检测到READ
事件时会调用channel的unsafe进行read操作,通过第二十一篇可知会将信息封装成NioSocketChannel并通过pipeline的fireChannelRead
方法传播到pipeline中的handler中,在第五十七篇中介绍的init()
方法可知在初始化boss线程组的channel的时候添加了一个ServerBootstrapAcceptor,所以channelRead
方法也会被执行;
2、 向worker组的channel添加pipeline的handler;
3、 将ServerBootstrap.childOption()
方法添加的options设置到channel中;
4、 将ServerBootstrap.childAttr()
方法添加的attributes设置到channel中;
5、 注册channel,注册成功后开始监听该channel的消息;
至此,ServerBootstrapAcceptor的分析至此结束,感谢阅读。
版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: