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