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