netty启动源码
-
初始化服务端Channel
bind()
:用户代码入口initandRegister
:初始化并注册newChannel()
:创建服务端channelinit()
:初始化服务端channel- set ChannelOptions,channelArrts
- set ChildOptions,ChildAttrs:为服务端channel创建的新连接的channel创建的
- config handler:配置服务端pipeline
- add ServerbootstrapAcceptor:添加连接器
- 注册selector:
register()
abstractChannel.register(channel)
:入口this.eventLoop = eventLoop
:绑定线程register0()
:进行实际注册doRegister()
:调用jdk底层注册invokeHandlerAddedIfNeeded():
fireChannelRegistered
:传播事件
- 端口绑定
abstractUnsafe.bind
doBind
javaChannelbind
:jdk底层绑定
pipeline.fireChannelActive
:传播事件HeadContext.readIfIsAutoRead()