1. ¿Cómo determina netty el tipo de channelHandler?
El constructor AbstractChannelHandlerContext debe pasarse cuando es entrante o saliente
2. Qué reglas se deben seguir para agregar channelHandler
3. ¿Cuál es la diferencia entre los diferentes métodos de activación?
inicialización de tubería
La canalización se crea cuando se crea el canal. Un canal corresponde a un objeto de canalización y se crean dos nodos de cabecera y cola para formar una lista doblemente vinculada.
La estructura de datos de canalización ChannelHandlerContext, channelHandlerContext hereda AttributeMap y ChannelInboundInvoker y ChannelOutboundInvoker
Los dos centinelas de la tubería, head y tail, tail prestan atención al manejo de excepciones y mensajes no procesados, que pertenecen a entrantes, head pertenecen a salientes y se centran en el método channelActive.
Agregar y eliminar channelHandler
Determinar si agregar repetidamente
Crea un nodo y agrega una lista
Devolución de llamada agregar evento de finalización
La propagación de eventos y anomalías.