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