Netty 之 心跳检测

文章给出了几个链接,吐槽部分文章故作高深。核心内容是将网络编程防空闲操作精简为两步:一是在pipeline中加入IdleStateHandler,二是让处理类实现ChannelInboundHandlerAdapter接口的userEventTriggered函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://www.jianshu.com/p/1a28e48edd92

https://www.jianshu.com/p/0c9112c5ffd1

https://blog.youkuaiyun.com/linuu/article/details/51385682

多数文章装逼成分居多。看懂之后就精简为两步:

【顺便吐槽一下:装逼文乍一看好牛逼,看懂之后就莫名讨厌。他妈的简单的东西被你讲的那么复杂,就想着自己懂,还不想让别人轻易搞懂。不想让别人懂就别写出来啊,会点三脚猫功夫就上天了。艹】

第一步: pipeline  加入:IdleStateHandler

ch.pipeline().addLast("idleStateHandler", new IdleStateHandler(5, 0, 0));

第二步:处理类 实现  ChannelInboundHandlerAdapter  接口的函数  userEventTriggered

@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
        if (evt instanceof IdleStateEvent) {
            IdleState state = ((IdleStateEvent) evt).state();
            if (state == IdleState.READER_IDLE) {
                // 在规定时间内没有收到客户端的上行数据, 主动断开连接
                socketChannelMap.remove((SocketChannel)ctx.channel());
                ctx.disconnect();
                System.out.println("心跳检测触发,连接断开!");
            }
        } else {
            super.userEventTriggered(ctx, evt);
        }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值