Netty - Orden de ejecución del controlador
Los handlers sin duda juegan un papel muy importante en Netty. Los controladores son muy similares a los filtros de Servlet. A través de los controladores, puede decodificar y codificar mensajes de comunicación, interceptar mensajes específicos, manejar errores en registros de manera uniforme, contar solicitudes de manera uniforme y controlar la ejecución de los controladores. En resumen, no hay nada que no pueda hacer, sólo cosas que no se te ocurren.
Todos los controladores en Netty implementan la interfaz ChannelHandler. Según el punto de salida al que se envía, se divide en dos categorías: ChannelInboundHandler y ChannelOutboundHandler. ChannelInboundHandler se utiliza para procesar mensajes enviados desde el cliente al servidor. Generalmente se utiliza para realizar decodificación, lectura de datos del cliente, procesamiento comercial, etc. ChannelOutboundHandler se utiliza para procesar mensajes enviados desde el servidor al cliente. codificar y enviar mensajes al cliente. Enviar mensajes, etc.
Netty puede registrar múltiples controladores. ChannelInboundHandler se ejecuta en el orden de registro; ChannelOutboundHandler se ejecuta en el orden inverso al de registro, como se muestra en la figura siguiente, ordenados según el orden de registro de los controladores. La secuencia de ejecución de las solicitudes que ingresan a Netty:
2. Caso de demostración
Lo anterior es un ejemplo de esta demostración de prueba:
2.1, lado del servidor
EchoServer.java
paquete com.example.nettynew ..server;
importar com.example.nettynew.hander.EchoInHandler1;
importar com.example.nettynew.hander.EchoInHandler1;
2.
importar com.example.nettynew.hander.EchoInHandler2;
importar com.example.nettynew .hander .EchoOutHandler2;
importar com.example.nettynew.hander.EchoOuteHandler1;
importar io.netty.ServerBootstrap;