netty 心跳_netty心跳实现

服务器与客户端的长连接(channel)的可用性,需要依赖心跳检测,心跳机制需要依赖chanel中的AttributeMap属性。官网文档查找说明:https://netty.io/4.1/api/index.html

bf8ebe1ffedca158580a764741ff59f5.png

AttributeMap接口:设置 Attribute Key,以及判断是否有 Attribute Key

82212272de7566b72ffb5df8d41642ee.png

AttributeKey:从常量池中生成T,详细请查看源码。

77a47fafbf2c3695817f61470cc51dce.png

Attribute:可以获取设置移除 Attribute Key中的T.

0ff66c5a08ee1c1c3838108d82948691.png

channel和channelHandlerContext中都有AttributeMap,channel中是共享的,channelHandlerContext中是私有的。

4f36e0da66bbda78d5c06fdc9e1ab721.png

服务器端使用:

心跳类型消息处理:7ec83baf4a6c143e3de0f677b4e6bb4c.png

具体处理方式:

7009384c7f0006e0ea027038e3da0319.png

生成一个心跳属性AttributeKey,并设置Attribute为当前时间字符串。

a6251b9410c34aa5e3e6371316798696.png

读取Attribute中的设置的时间戳:

29d4b14ce2f2e943283282b95a0326f5.png

根据设置有心跳时间,判断长连接的有效性,如果超过设置的时间,关闭长连接:

7eb207cc32a3412df68ad449d8301843.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值