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

容城网站建设做微信小程序的公司

容城网站建设,做微信小程序的公司,广州网站优化多少钱,电子商务公司简介怎么写剖析目的 Netty 作为一个网络框架,提供了诸多功能,比如编码解码等,Netty 还提供了非常重要的一个服务----心跳机制 heartbeat.通过心跳检査对方是否有效,这是 RPC 框架中是必不可少的功能。下面我们分析一下 Netty 内部心跳服务源码实现。 源…

剖析目的

Netty 作为一个网络框架,提供了诸多功能,比如编码解码等,Netty 还提供了非常重要的一个服务----心跳机制 heartbeat.通过心跳检査对方是否有效,这是 RPC 框架中是必不可少的功能。下面我们分析一下 Netty 内部心跳服务源码实现。

源码剖析

 Netty 提供了 IdleStateHandler ,ReadTimeoutHandler,WriteTimeoutHandler 三个Handler 检测连接的有效性重点分析 IdleStateHandler

序号

名称

作用

1

IdleStateHandler

当连接的空闲时间(读或者写)太长时,将会触发一个IdleStateEvent 事件。然后,你可以通过你的 ChannellnboundHandler 中重写 userEventTrigged 方法来处理该事件。

2

ReadTimeoutHandler

如果在指定的事件没有发生读事件,就会抛出这个异常,并自动关闭这个连接。你可以在exceptionCaught 方法中处理这个异常。

3

WriteTimeoutHandler

当一个写提作不能在一定的时间内完成时,抛出此异常,并关闭连接,你同样可以在exceptionCaught 方法中处理这个异常。

ReadTimeout 事件和 WriteTimeout 事件都会自动关闭连接,而且,属于异常处理

 

IdleStateHandler 分析

 4 个属性

private final boolean observeOutput, //是否考虑出站时较慢的情况。默认值是 false
private final long readerldleTimeNanos://读事件空闲时间,0 则禁用事件
private final long writerldleTimeNanos;//写事件空闲时间,0 则禁用事件
private final long allldleTimeNanos;//读或写空闲时间,0 则禁用事件

handlerAdded 方法

当该 hander 被添加到 pipeline 中时,则调用 initialize 方法

private void initialize(ChannelHandlerContext ctx)f
// Avoid the case where destroy()is called before scheduling timeouts// See: https://github.com/netty/netty/issues/143
switch(state)f
case 1:
case 2.
return,
state=1:
initOutputChanged(ctx);
lastReadTime =lastWriteTime = ticksInNanos();
if(readerldleTimeNanos >0)f
//这里的 schedule 方法会调用 eventLoop 的 schedule 方法,将定时任务添加进队列中readerldleTimeout = schedule(ctx, new ReaderldleTimeoutTask(ctx).
readerldleTimeNanos, TimeUnit.NANOSECONDS);
if(writerldleTimeNanos >0){
writerldleTimeout =schedule(ctx.new WriterldleTimeoutTask(ctx)writerldleTimeNanos.TimeUnitNANOSECONDS):if(allldleTimeNanos >0){
allldleTimeout= schedule(ctx, new AllldleTimeoutTask(ctx)allldleTimeNanos, TimeUnit.NANOSECONDS);

只要给定的参数大于 0,就创建一个定时任务,每个事件都创建。同时,将 state 状态设置为 1,防止重复初始化.。调用 initOutputChanged 方法,初始化 “监控出站数据属性”

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

相关文章:

  • 怎样做淘宝券网站用什么软件做公司网站
  • 心理 网站策划dlog4j wordpress
  • 北京企业官网建设湛江网站seo
  • 房产网站设计怎么在百度上发布帖子
  • net网站建设语言上海做网站待遇
  • 贷款网站织梦模板源码崇文门网站建设
  • 做夏促的网站有哪些wordpress支付下载
  • wordpress建站教程第六节wordpress加个文本框
  • 做网站要注意的h5
  • 网站开发需求 德州维护网址
  • 网站 制作图文广告公司取名
  • 如何用c语言做钓鱼网站免费咨询英文
  • 西宁市城乡建设网站网页模板免费下载网站
  • 哪里有网站建设电话广州佛山app网站商城制作
  • 网站建设服务ysaigoseo网站推广目的
  • 威宁做网站软件开发工作稳定吗
  • 网站群集约化建设国内企业手机网站建设
  • 青岛做网站皆赴青岛博采wordpress widgets_init
  • 汕头建站网站模板北京网站建设培训班
  • 找南昌网站开发公司wordpress user meta
  • 黄冈网站推广下载网络公司最好的是哪个
  • dede织梦做的网站 栏目页有切换js 怎么循环子栏目 调子栏目网站定制网页设计
  • 新网站制作怎么样网络教育
  • 东莞企石做网站wordpress 门户好的
  • 中文网站域名合肥全网优化
  • 崇明手机网站建设介绍网站建设
  • 建设ca网站电商类网站咋做
  • 海外网站seo有了域名后怎么建设网站
  • 海口建站价格做苗木网站哪家好
  • ai特效字体网站wordpress能做多大的站