aoi.tsukasa 2022-01-11 17:17 采纳率: 75%
浏览 351

在Netty中,客户端处理器中的方法 channelInactive() 被调用后获取到一个新的连接channel,这个channel是怎么用到后续的读写操作中去的?

在Netty中,客户端处理器中的方法 channelInactive() 被调用后获取到一个新的连接channel,这个channel是怎么用到后续的读写操作中去的?

// 运行时断线重连
    @Override
    public void channelInactive(ChannelHandlerContext ctx) throws Exception {
        super.channelInactive(ctx);
        final EventLoop eventLoop = ctx.channel().eventLoop();
        // 重连
        Channel newChannel = ChannelProvider.get((InetSocketAddress) ctx.channel().remoteAddress(), new KryoSerializer());
        logger.info("-------------运行时重连成功:{}--------------", newChannel.toString());
        System.out.println(ctx.channel().toString());
    }

为什么我的ctx.channel中还是那个被断开的旧连接,新的连接没有被用到后续的读写操作中,导致后续读写操作失败了?

  • 写回答

1条回答 默认 最新

  • 码渣——JAVA 2022-01-12 10:27
    关注

    通过初始化Channel 中配置的解码和编码进行传递的,当连接以后被调用channelActive 然后通过你配置的解码器进行传递进行数据解码

    评论

报告相同问题?

问题事件

  • 创建了问题 1月11日

悬赏问题

  • ¥15 c++2013读写oracle
  • ¥15 c++ gmssl sm2验签demo
  • ¥15 关于模的完全剩余系(关键词-数学方法)
  • ¥15 有没有人懂这个博图程序怎么写,还要跟SFB连接,真的不会,求帮助
  • ¥30 模拟电路 logisim
  • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音