🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] # 处理流程 ![](https://box.kancloud.cn/4d4dbadb138cf22b68c1c4720a2ba7c7_1520x954.png) # NioEventLoop NioEventLoop -> Thread 这个线程包括2部分, 服务端接收客户端连接的线程, 还有一个是处理每个连接的读写的这个线程 # Channel Channel -> Socket 对连接的封装,封装里面可以对数据读写 一个Channel对应一个Socket netty也会创建socket然后把channel绑定到socket # ByteBuf ByteBuf -> IO Bytes 在Channel中的数据读写都是基于ByteBuf # Pipeline Pipeline -> Logic Chain 其实是个链表 逻辑处理链,逻辑处理链里面每个就是ChannelHandler # netty中handler的执行顺序 Handler在netty中,占据着非常重要的地位。Handler与Servlet中的filter很像,通过Handler可以完成通讯报文的解码编码、拦截指定的报文、统一对错误进行处理、统一对请求进行计数、控制Handler执行与否。一句话,没有它做不到的只有你想不到的。 Netty中的所有handler都实现自ChannelHandler接口。 按照输入输出来分,分为两大类: ChannelInboundHandler对接收到的报文进行处理,一般用来执行解码、读取数据、进行业务处理等; ChannelOutboundHandler对发出去的报文进行处理,一般用来进行编码、发送报文到对端。 Netty中,可以注册多个handler。 ChannelInboundHandler按照注册的先后顺序执行; ChannelOutboundHandler按照注册的先后逆序执行 ![](https://box.kancloud.cn/577c8599722cd227860f1e94dee4d753_921x299.png)