-
bootstrapping
这次再讲bootstrapping.bootstrapping是连接客户端或者服务器绑定指定接口时使用.bootstrapping有两种类型,用于客户端的bootstrap和用于服务器的serverbootstrap.
分类 | 网络功能 | EventLoopGroup数量 |
---|---|---|
bootstrap | 连接到远程主机和端口 | 1 |
serverbootstrap | 绑定本地端口 | 2 |
-
bootstrap
serverbootstrap监听在服务器监听一个端口查看客户端的bootstrap是否连接到服务器.bootstrap直接调用connect()与服务器连接.一个serverbootstrap有2个channel集合,第一个集合包括一个单例serverChannel,代表持有一个绑定本地端口的socket;第二个集合包括所有的channel,处理客户端的连接.
-
channelHandler
channelOutboundHandler和channelOutboudHandler是继承接口channelHandler的两个类.如果数据从客户端到服务端是outbound,数据从服务器到客户端是inbound.下图可以解释.
所有的channelHandler都会被安装到pipeline上.如果小心或者其他入站事件被读到的时候,将会从pipeline头部开始,,按照channelInboundHandler顺序放在channelInboundHandler中处理直到数据到达了pipeline的尾部.
相同,数据的出站运动也类似这样,按照channelOutboundHandler顺序处理数据直到数据到达了pipeline的头部.
事件在handler中流动是通过了channelHandlerContext.当你想处理事件时候,可以用Netty提供的抽象基类类ChannelInboundHandlerAdapter 和
hannelOutboundHandlerAdapter,通过相应的方法把事件传递给下一个handler.