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