handler()とchildHandler()、childOption()とoptionの違い

1478 ワード

* */                                                                                                                                           
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にトランザクションが渡され、2つは異なる角度から説明されます.