From a20bc4abb2b913bf03dda03a45d835da090cf9aa Mon Sep 17 00:00:00 2001
From: liusuyi <13324259@qq.com>
Date: 星期三, 27 十二月 2023 22:18:11 +0800
Subject: [PATCH] 雷达通过ip和端口关联

---
 src/main/java/com/ard/utils/netty/tcp/ClientInitialize.java |    6 +++---
 src/main/java/com/ard/utils/netty/tcp/ClientHandler.java    |   10 +++++++---
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/ard/utils/netty/tcp/ClientHandler.java b/src/main/java/com/ard/utils/netty/tcp/ClientHandler.java
index e63dbb2..4d22142 100644
--- a/src/main/java/com/ard/utils/netty/tcp/ClientHandler.java
+++ b/src/main/java/com/ard/utils/netty/tcp/ClientHandler.java
@@ -8,6 +8,7 @@
 import com.ard.utils.util.GisUtils;
 import com.ard.utils.mqtt.MqttProducer;
 import io.netty.buffer.ByteBuf;
+import io.netty.channel.Channel;
 import io.netty.channel.ChannelHandlerContext;
 import io.netty.channel.ChannelId;
 import io.netty.channel.SimpleChannelInboundHandler;
@@ -16,6 +17,7 @@
 
 import javax.xml.bind.DatatypeConverter;
 import java.net.InetSocketAddress;
+import java.net.SocketAddress;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.concurrent.ScheduledFuture;
@@ -61,7 +63,7 @@
         int port = ipSocket.getPort();
         String host = ipSocket.getHostString();
         log.error("涓庤澶�" + host + ":" + port + "杩炴帴鏂紑!");
-        ArdEquipRadar ardEquipRadar = ClientInitialize.tureConnectMap.get(id);
+        ArdEquipRadar ardEquipRadar = ClientInitialize.tureConnectMap.get(host+ ":" + port);
         // 杩炴帴鏂紑鍚庣殑鏈�鍚庡鐞�
         ctx.pipeline().remove(this);
         ctx.deregister();
@@ -82,8 +84,10 @@
      */
     @Override
     public void channelRead0(ChannelHandlerContext ctx, ByteBuf msg) throws Exception {
-        ChannelId id = ctx.channel().id();
-        ArdEquipRadar ardEquipRadar = ClientInitialize.tureConnectMap.get(id);
+        InetSocketAddress ipSocket = (InetSocketAddress) ctx.channel().remoteAddress();
+        int port = ipSocket.getPort();
+        String host = ipSocket.getHostString();
+        ArdEquipRadar ardEquipRadar = ClientInitialize.tureConnectMap.get(host+":"+port);
         // 澶勭悊鎺ユ敹鍒扮殑娑堟伅
         byte[] byteArray = new byte[msg.readableBytes()];
         msg.getBytes(msg.readerIndex(), byteArray);
diff --git a/src/main/java/com/ard/utils/netty/tcp/ClientInitialize.java b/src/main/java/com/ard/utils/netty/tcp/ClientInitialize.java
index c661f52..d3841c7 100644
--- a/src/main/java/com/ard/utils/netty/tcp/ClientInitialize.java
+++ b/src/main/java/com/ard/utils/netty/tcp/ClientInitialize.java
@@ -45,7 +45,7 @@
 
     private Bootstrap bootstrap;
     public static CopyOnWriteArraySet<ArdEquipRadar> falseConnectSet = new CopyOnWriteArraySet();
-    public static ConcurrentHashMap<ChannelId, ArdEquipRadar> tureConnectMap = new ConcurrentHashMap();
+    public static ConcurrentHashMap<String, ArdEquipRadar> tureConnectMap = new ConcurrentHashMap();
     public static ConcurrentHashMap<String, Object> SuccessConnectMap = new ConcurrentHashMap();
     /**
      * Netty鍒濆鍖栭厤缃�
@@ -106,14 +106,14 @@
                 // 杩炴帴澶辫触淇℃伅鎻掑叆Set
                 falseConnectSet.add(ardEquipRadar);
                 // 杩炴帴澶辫触淇℃伅浠巑ap绉婚櫎
-                tureConnectMap.remove(futureListener.channel().id());
+                tureConnectMap.remove( host + ":" + port);
                 SuccessConnectMap.remove(ardEquipRadar.getId());
             } else {
                 log.debug("闆疯揪銆�" + host + ":" + port + "銆戣繛鎺ユ垚鍔�");
                 // 杩炴帴鎴愬姛淇℃伅浠嶴et鎷旈櫎
                 falseConnectSet.remove(ardEquipRadar);
                 // 杩炴帴鎴愬姛淇℃伅鍐欏叆map
-                tureConnectMap.put(futureListener.channel().id(), ardEquipRadar);
+                tureConnectMap.put(host+"_"+port, ardEquipRadar);
                 SuccessConnectMap.put(ardEquipRadar.getId(),futureListener.channel());
             }
         });

--
Gitblit v1.9.3