From a1f5b4bcde020c206382c3a07c9b4ecd5784a9d8 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期三, 13 八月 2025 15:26:55 +0800 Subject: [PATCH] 修改bug --- MessagePushTravel/src/main/java/com/sinata/push/util/echo/NettyChannelMap.java | 29 +++++++++++++++++++++++++++-- 1 files changed, 27 insertions(+), 2 deletions(-) diff --git a/MessagePushTravel/src/main/java/com/sinata/push/util/echo/NettyChannelMap.java b/MessagePushTravel/src/main/java/com/sinata/push/util/echo/NettyChannelMap.java index acd89f0..a0dd469 100644 --- a/MessagePushTravel/src/main/java/com/sinata/push/util/echo/NettyChannelMap.java +++ b/MessagePushTravel/src/main/java/com/sinata/push/util/echo/NettyChannelMap.java @@ -8,8 +8,8 @@ import java.util.concurrent.ConcurrentHashMap; public class NettyChannelMap { - - protected static Map<String, ChannelHandlerContext> map = new ConcurrentHashMap<>(); + + public static Map<String, ChannelHandlerContext> map = new ConcurrentHashMap<>(); public static Map<String, ChannelHandlerContext> ctxMap = new HashMap<>();//单点登录存储的通道 @@ -78,6 +78,9 @@ */ @SuppressWarnings("rawtypes") public static synchronized void remove(ChannelHandlerContext value) { + if(null == value){ + return; + } Set<String> strings = map.keySet(); for(String key : strings){ ChannelHandlerContext channelHandlerContext = map.get(key); @@ -91,6 +94,23 @@ } + public static synchronized void remove_(ChannelHandlerContext value) { + Set<String> strings = ctxMap.keySet(); + for(String key : strings){ + ChannelHandlerContext channelHandlerContext = ctxMap.get(key); + String s = channelHandlerContext.channel().remoteAddress().toString(); + String s1 = value.channel().remoteAddress().toString(); + if(s.equals(s1)){ + channelHandlerContext.close();//关闭通道 + ctxMap.remove(key); + } + } + } + + + public static synchronized void remove_(String key) { + ctxMap.remove(key); + } /** @@ -113,4 +133,9 @@ map.put(key, value); } + + + public static synchronized void update_(String key, ChannelHandlerContext value) { + ctxMap.put(key, value); + } } -- Gitblit v1.7.1