netty学习笔记
socket
channel可理解成简化版的socket
eventLoop用于处理连接的生命周期中所发生的事件【创建channel,就是创建一个连接,将连接注册到eventLoop事件循环组件里面,即将连接交给eventLoop来进行管理】
32
EventLoop
一个EventLoopGroup 包含一个或者多个EventLoop ;
一个EventLoop 在它的生命周期内只和一个Thread 绑定;
所有由EventLoop 处理的lo事件都将在它专有的Thread 上被处理;
一个Channel 在它的生命周期内只注册于一个EventLoop ;
一个EventLoop 可能会被分配给一个或多个Channel
注意,在这种设计中,一个给定Channel 的lO操作都是由相同的Thread 执行的,实际上消除了对于同步的需要。
ChannelFuture 接口
正如我们已经解释过的那样,Netty 中所有的O操作都是异步的。因为一个操作可能不会立即返回,所以我们需要一种用于在之后的某个时间点确定其结果的方法。为此,Netty 提供了ChannelFuture 接口,其addListener ()方法注册了一个ChannelFutureListener ,以便在某个操作完成时(无论是否成功)得到通知。
关于ChannelFuture 的更多讨论可以将ChannelFuture 看作是将来要执行的操作的结果的占位符它究竟什么时候被执行则可能取决于若干的因素,因此不可能准确地预测,但是可以肯定的是它将会被执行,此外,所有属于同一个Channel 的操作都被保证其将以它们被调用的顺序被执行【占位符:它占着一个位置,在将来这个位置一定有人来做。这就是ChannelFuture 】
Inbound and outbound 出站和入站
channelInboundhandler是channelhandler的子类,他是用来接受(装载)入栈事件和数据的
channelPipline是一个容器,他是用来容纳channelhandler链条的
SimpleChannelInboundhandler是用来接受解码消息的‘
引导
引导就是容器,它容纳的是网络的配置信息。如将进程和端口绑定,将进程和进程连接
客户端的bootstrap只有一个eventLoopGroup,服务端有两个
网络传输的的单位是字节
监听器回调机制
还没有评论,来说两句吧...