diff --git a/jsowell-common/src/main/java/com/jsowell/common/enums/ykc/PileChannelEntity.java b/jsowell-common/src/main/java/com/jsowell/common/enums/ykc/PileChannelEntity.java index bcff07c22..02e5d8ea4 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/enums/ykc/PileChannelEntity.java +++ b/jsowell-common/src/main/java/com/jsowell/common/enums/ykc/PileChannelEntity.java @@ -1,5 +1,6 @@ package com.jsowell.common.enums.ykc; +import com.jsowell.common.util.StringUtils; import io.netty.channel.Channel; import lombok.extern.slf4j.Slf4j; @@ -61,4 +62,11 @@ public class PileChannelEntity { manager.remove(pileSn); } + public static void removeByChannelId(String channelId){ + String pileSn = getPileSnByChannelId(channelId); + if (StringUtils.isNotBlank(pileSn)) { + manager.remove(pileSn); + } + } + } \ No newline at end of file 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 5f32ca332..d98fa610f 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 @@ -180,6 +180,8 @@ public class NettyServerHandler extends ChannelInboundHandlerAdapter { if (flag) { log.error("发生异常,关闭链接,channelId:{}, pileSn:{}", channelId.asShortText(), pileSn); ctx.channel().close(); + + close(channelId); } } } @@ -201,6 +203,16 @@ public class NettyServerHandler extends ChannelInboundHandlerAdapter { } log.error("【{}】发生了错误, pileSn:【{}】此连接被关闭, 此时连通数量: {}", channelId, pileSn, CHANNEL_MAP.size()); ctx.channel().close(); + + close(channelId); } } + + private void close(ChannelId channelId) { + // 删除桩编号和channel的关系 + PileChannelEntity.removeByChannelId(channelId.asLongText()); + + // 删除连接 + CHANNEL_MAP.remove(channelId); + } } \ No newline at end of file