Netty-心跳检测配置

  1. 管道链配置心跳状态handler,参数一:读超时,参数二:写超时,参数三:所有超时(0表示不监测)
    @Override
    protected void initChannel(Channel channel) throws Exception {
        ChannelPipeline pipeline = channel.pipeline();
        //10S心跳检测连接
        pipeline.addLast("idle", new IdleStateHandler(10, 0, 0, TimeUnit.SECONDS));
        pipeline.addLast(group, "handler", dataDecodeHandler);
    
    }
  2. handler重写userEventTriggered(超时触发)
    @Override
    public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
        if (evt instanceof IdleStateEvent) {
            IdleStateEvent event = (IdleStateEvent) evt;
            if (event.state() == IdleState.READER_IDLE) {//读超时
                logger.error("10秒未收到客户端{}消息,关闭连接.", ctx.channel().remoteAddress().toString());
                ctx.channel().close();
            } else if (event.state() == IdleState.WRITER_IDLE) {//写
    
            } else if (event.state() == IdleState.ALL_IDLE) {//全部
    
            }
        } else {
            super.userEventTriggered(ctx, evt);
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值