《Netty》5.接口的功能介绍
Channel接口
EmbeddedChannel
LocalServerChannel
NioDatagramChannel
NioSctpChannel
NioSocketChannel
EventLoop接口
EventLoop定义了Netty处理连接生命周期中发生的事件的核心抽象,下面介绍Channels、EventLoops、Threads和EventLoopGroups之间的关系。
-
一个EventLoopGroup包含一个或多个Eventloop。 -
一个EventLoop对应一个线程。 -
由EventLoop处理的所有I/O事件。 -
Channel的生命周期是由单个EventLoop注册开始的。 -
一个EventLoop可以分配给一个或多个channel。
ChannelFuture
注意:假如添加了多个ChannelFutureListener,它们将会按照添加顺序调用。
ChannelHandler
Netty以适配器模式的方式提供了许多默认的ChannelHandler,其目的是简化应用程序处理逻辑的开发,而我们只需扩展对应的方法就行;
比如:
-
ChannelHandlerAdapter -
ChannelInboundHandlerAdapter -
ChannelOutboundHandlerAdapter -
ChannelDuplexHandlerAdapter
ChannelPipeline
-
ChannelInitializer实现是向ServerBootstrap注册的。 -
当ChannelInitializer. initchannel()被调用时,自定义ChannelHandlers的将分配到ChannelPipeline中。 -
ChannelInitializer从ChannelPipeline中删除自己。
从客户端的角度来看,如果事件是从客户端到服务端,称为出站事件,反之称为入站事件。