From f249184cfe990136522944d455ddbc9e4255a4ff Mon Sep 17 00:00:00 2001 From: "autumn.g@foxmail.com" Date: Wed, 6 Dec 2023 14:31:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=AC=E5=85=B1=E6=96=B9=E6=B3=95=20?= =?UTF-8?q?=E5=85=B3=E9=97=AD=E8=BF=9E=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/yunkuaichong/NettyServerHandler.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/server/yunkuaichong/NettyServerHandler.java b/jsowell-netty/src/main/java/com/jsowell/netty/server/yunkuaichong/NettyServerHandler.java index d5c148450..2a6ff938f 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/server/yunkuaichong/NettyServerHandler.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/server/yunkuaichong/NettyServerHandler.java @@ -208,14 +208,20 @@ public class NettyServerHandler extends ChannelInboundHandlerAdapter { // close(channelId, pileSn); } - private void close(ChannelId channelId, String pileSn, ChannelHandlerContext ctx) { - log.error("close方法-发生异常,关闭链接,channelId:{}, pileSn:{}", channelId.asShortText(), pileSn); + // 公共方法 关闭连接 + private void closeConnection(String pileSn, ChannelHandlerContext ctx) { + Channel channel = ctx.channel(); + ChannelId channelId = channel.id(); + log.error("close方法-发生异常,关闭链接,channelId:{}, pileSn:{}", channelId.asShortText(), pileSn); + if (channel != null && !channel.isActive() && !channel.isOpen() && !channel.isWritable()) { + channel.close(); + // 删除连接 + CHANNEL_MAP.remove(channelId); + } // 删除桩编号和channel的关系 if (StringUtils.isNotBlank(pileSn)) { - // PileChannelEntity.removeByPileSn(pileSn); + PileChannelEntity.removeByPileSn(pileSn); } - // 删除连接 - CHANNEL_MAP.remove(channelId); } } \ No newline at end of file