ServerSocketChannel初始化
2023-09-14 22:52:59 3 举报
登录查看完整内容
ServerSocketChannel初始化
作者其他创作
大纲/内容
删除当前的处理器
ServerBootstrapAcceptor
new Runnable() { @Override public void run() { pipeline.addLast(new ServerBootstrapAcceptor(...); }
ctx.pipeline().fireChannelRegistered()
TailContext
if ( )
真
ctx.fireChannelRegistered()
<<abstract>>ChannelHandlerAdapter
channelRegistered(ChannelHandlerContext ctx)
<<interface>>ChannelHandler
if (initMap.add(ctx))确保每个Channel只被初始化一次
Task
<<interface>>ChannelInboundHandler
initChannel(ctx)
ChannelInitializer
<<abstract>>ChannelInitializer.class
ch.eventLoop().execute
ChannelInboundHandlerAdapter
假
如果调用过,直接将channelRegistered事件传递给下一个处理器。
告知ChannelPipeline中的其他处理器这个新的Channel已经被注册
HeadContext
removeState(ctx)
从Channel获取其EventLoop,任务交给它执行
pipeline.remove(this)
在服务端启动时,Pipeline添加的匿名内部类重写的initChannel
ServerSocketChannelPipeline
0 条评论
回复 删除
下一页