在服务端NIO开发过程中,channel需要注册到selector上,实现多路复用功能.
Netty的服务端在向Pipeline中添加Handler时候,在某个时机需要调用我们重写的 handlerAdded方法.那么这里面一个关键点就是channel是否已经注册上了selector。
因为一个channel是和一个pipeline绑定的. 如果这个channel还没有注册到selector,那么这个时候向pipeline添加handler是不能调用我们重写的handlerAdded方法.Netty通过Pipeline中的一个单向链表,将这些handler存储起来,当channel成功注册到selector以后,再来将这个链表上的handler找出来,逐个调用我们重写的handlerAdded方法。
如果这个channel已经注册到selector上,这个时候我们在向pipeline中添加handler时,直接就可以调用我们重写的handlerAdded方法。
个人站点
个人公众号: Netty历险记