当前位置: 首页 > news >正文

网站忧化工作怎么样广告设计策划公司

网站忧化工作怎么样,广告设计策划公司,whois查询,社交网站开发成本文章目录 一、Channel、ChannelPipeline 以及ChannelHandler 三者的关系❓二、ChannelHandler 是什么?🤔️三、ChannelInboundHandler四、ChannelOutboundHandler 一、Channel、ChannelPipeline 以及ChannelHandler 三者的关系❓ 通过以上对Channel和Ch…

文章目录

  • 一、Channel、ChannelPipeline 以及ChannelHandler 三者的关系❓
  • 二、ChannelHandler 是什么?🤔️
  • 三、ChannelInboundHandler
  • 四、ChannelOutboundHandler

一、Channel、ChannelPipeline 以及ChannelHandler 三者的关系❓

通过以上对Channel和ChannelPipeline的源码解读,想必大家已知晓Channel、ChannelPipeline和 ChannelHandler 三者的关系,正如图所示:
在这里插入图片描述

  • 每一个 Channel 中都会包含一个 ChannelPipeline 属性
  • ChannelPipeline 是一个双向链表结构,默认会包含 HeadContext 和 TailContext 两个节点
  • 当向 ChannelPipeline 中添加 ChannelHandler 时,会包装成 ChannelContext 插入到 ChannelPipeline 链表中
  • 当 Channel 中发生指定事件时,该事件就会在 ChannelPipeline 中沿着双向链表进行传播,调用各个 ChannelHandler 中的指定方法,完成相应的业务处理

Netty 正是通过 ChannelPipeline 这一结构为用户提供了自定义业务逻辑的扩展点,用户只需要向 ChannelPipeline 中添加处理对应业务逻辑的 ChannelHandler,之后当指定事件发生时,该 ChannelHandler 中的对应方法就会进行回调,实现业务的处理。

打个比喻,每个 channel 是一个产品的加工车间,pipeline 是车间中的流水线,channelHandler 就是流水线上的各道工序,byteBuf 是原材料,经过很多工序的加工:先经过一道道入站工序,再经过一道道出站工序最终变成产品。

二、ChannelHandler 是什么?🤔️

ChannelHandler 基于责任链模式实现,负责对IO事件进行拦截和处理, 也可以终止事件的传递。ChannelHandler 有两个重要的子接口ChannelInboundHandlerChannelOutboundHandler,分别拦截入站和出站的各种 I/O 事件

  • 入站处理器通常是 ChannelInboundHandlerAdapter 的子类,主要用来 处理入站数据以及各种变化,简单理解就是:客户端或者服务器端接收其他端的数据进行处理;
  • 出站处理器通常是 ChannelOutboundHandlerAdapter 的子类,主要用来 处理 出站 数据并且允许拦截所有的操作,简单理解就是:客户端或者服务器端发送数据给其他端的数据处理,同时还可以拦截读写操作。

在这里插入图片描述
ChannelHandler支持注解,Netty提供了2个:

  • Sharable:多个ChannelPipline公用同一个ChannelHandler
  • Skip:被Skip注解的方法不会被调用

ChannelDuplexHandler是双工处理器,具有ChannelInboundHandler和ChannelOutboundHandler的功能

三、ChannelInboundHandler

ChannelInboundHandler 处理入站数据以及各种状态变化,当 channel 状态发生改变会调用 ChannelInboundHandler 中的一些生命周期方法,以下罗列ChannelInboundHandler的事件回调方法与触发时机!

  1. channelRegistered 注册事件。channel 被注册到 EventLoop 上后调用,例如服务岗启动时,pipeline.fireChannelRegistered()
  2. channelUnregistered 注销事件。channel 从 EventLoop 上注销后调用,例如关闭连接成功后,pipeline.fireChannelUnregistered()
  3. channelActive 激活事件,绑定端口成功后调用,pipeline.fireChannelActive()
  4. channelInactive 非激活事件,连接关闭后调用,pipeline.fireChannelInactive()
  5. channelRead 读事件,channel有数据时调用,pipeline.fireChannelRead()
  6. channelReadComplete 读完事件,channel读完之后调用,pipeline.fireChannelReadComplete()
  7. channelWritabilityChanged 可写状态变更事件,当一个channel的可写的状态发生改变的时候执行,可以保证写的操作不要太快,防止OOMpipeline.fireChannelWritabilityChanged()
  8. userEventTriggered 用户事件触发,例如心跳检测,ctx.fireUserEventTriggered(evt)
  9. exceptionCaught 异常事件

我们可以看出,Inbound事件都是由I/O线程触发,用户实现部分关注的事件被动调用

ChannelInboundHandlerAdapter作为ChannelInboundHandler的实现,默认将入站事件自动传播到下一个入站处理器。其中的代码高度一致,如channelRead()
在这里插入图片描述
查找通道中的下一个Inbound

private AbstractChannelHandlerContext findContextInbound(int mask) {AbstractChannelHandlerContext ctx = this;do {ctx = ctx.next;} while ((ctx.executionMask & mask) == 0);return ctx;
}

四、ChannelOutboundHandler

ChannelOutboundHandler 的事件回调方法与触发时机!此外 ChannelOutboundHandler 中绝大部分接口都包含ChannelPromise 参数,以便于在操作完成时能够及时获得通知。

  1. bind 事件,绑定端口
  2. close事件,关闭channel
  3. connect事件,用于客户端,连接一个远程机器
  4. disconnect事件,用于客户端,关闭远程连接
  5. deregister事件,用于客户端,在执行断开连接disconnect操作后调用,将channelEventLoop中注销
  6. read事件,用于新接入连接时,注册成功多路复用器上后,修改监听为OP_READ操作位
  7. write事件,向通道写数据
  8. flush事件,将通道排队的数据刷新到远程机器上

同理,ChannelOutboundHandlerAdapter作为ChannelOutboundHandler的事件,默认将出站事件传播到下一个出站处理器~

http://www.yayakq.cn/news/845759/

相关文章:

  • 刷赞网站空间免费简单的旅游网站怎么做
  • 公司做网站需要准备什么条件谷歌代运营
  • 建立大型网站吗网站的切图是谁来做
  • 企业网站建设与实施调查报告wordpress 安装文件
  • 如何做好网站的优化做全景图的网站
  • 佛山网站建设品牌小程序登录模板
  • 网站建设类毕业设计网络广告策划公司
  • 安平网站建设ftp上传网站全教程
  • 南昌网站维护制作网站建设设计制作
  • 做旅游网站的设计感想大学生做爰网站
  • 电子商务网站建设与管理 pdf上海好的设计公司
  • 域名注册空间网站知乎关键词搜索排名
  • 乐山做美食推荐的网站凡客平台
  • 做网站做图电脑需要什么配置谭海波博客简介 wordpress
  • 营销网站建设有哪些公司wordpress 菜单保存在哪里
  • 蓬莱做网站公司wordpress文件缓存
  • 网站空间流量查询学网站建设工作
  • 宝塔面板windows建站教程app产品网站建设
  • 网站开发执行什么标准号石家庄做标书的网站
  • 手机网站适应屏幕网站克隆下来了然后再怎么做
  • 扬中网站建设包括哪些青岛胶南做网站的有多少
  • 深圳app开发公司价格怎么算谷歌seo外链
  • 网站建设定制开发网站设计开发电商网站收费吗
  • 自己做网站需要购买服务器吗网站建设综合实训总结与体会
  • 酒店网站开发中国移动网站备案管理系统不能用
  • 网站建设公司 保证完成 最新logo设计大赛
  • 加强公司门户网站建设如何在本地发布自己做的网站
  • 怎么用自己的电脑做网站主机科威网络做网站怎么样
  • 执法局网站建设目的手机网页及网站设计 pdf
  • 做网站导航cms创意产品网站