From b0926cd91651c158a3a1c070f9b6d2d8ce877cfe Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期二, 26 三月 2024 10:07:33 +0800
Subject: [PATCH] 优化雷达连接

---
 src/main/java/com/ard/utils/netty/tcp/handler/ClientHandler.java |   42 +++++++++++++++++-------------------------
 1 files changed, 17 insertions(+), 25 deletions(-)

diff --git a/src/main/java/com/ard/utils/netty/tcp/ClientHandler.java b/src/main/java/com/ard/utils/netty/tcp/handler/ClientHandler.java
similarity index 94%
rename from src/main/java/com/ard/utils/netty/tcp/ClientHandler.java
rename to src/main/java/com/ard/utils/netty/tcp/handler/ClientHandler.java
index 3b1ed6a..196c5d9 100644
--- a/src/main/java/com/ard/utils/netty/tcp/ClientHandler.java
+++ b/src/main/java/com/ard/utils/netty/tcp/handler/ClientHandler.java
@@ -1,18 +1,18 @@
-package com.ard.utils.netty.tcp;
+package com.ard.utils.netty.tcp.handler;
 
 import com.alibaba.fastjson2.JSON;
 import com.ard.alarm.radar.domain.ArdAlarmRadar;
 import com.ard.alarm.radar.domain.ArdEquipRadar;
 import com.ard.alarm.radar.domain.RadarAlarmData;
+import com.ard.utils.netty.tcp.RadarNettyTcpClient;
 import com.ard.utils.util.ByteUtils;
 import com.ard.utils.util.GisUtils;
 import com.ard.utils.mqtt.MqttProducer;
 import io.netty.buffer.ByteBuf;
-import io.netty.channel.ChannelHandlerContext;
-import io.netty.channel.ChannelId;
-import io.netty.channel.SimpleChannelInboundHandler;
+import io.netty.channel.*;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
 
 import javax.xml.bind.DatatypeConverter;
 import java.net.InetSocketAddress;
@@ -21,7 +21,7 @@
 import java.util.concurrent.ScheduledFuture;
 import java.util.concurrent.TimeUnit;
 
-import static com.ard.utils.netty.tcp.ClientInitialize.aroundScanfMap;
+import static com.ard.utils.netty.tcp.RadarNettyTcpClient.aroundScanfMap;
 import static com.ard.utils.util.ByteUtils.toLittleEndian;
 
 /**
@@ -31,7 +31,8 @@
  * @Date: 2023骞�07鏈�05鏃�13:13
  * @Version: 1.0
  **/
-
+@Component
+//@ChannelHandler.Sharable
 @Slf4j(topic = "netty")
 public class ClientHandler extends SimpleChannelInboundHandler<ByteBuf> {
     private ChannelHandlerContext context;
@@ -58,18 +59,9 @@
     @Override
     public void channelInactive(ChannelHandlerContext ctx) throws Exception {
         InetSocketAddress ipSocket = (InetSocketAddress) ctx.channel().remoteAddress();
-        String ipPort = ipSocket.getHostString() + ":" + ipSocket.getPort();
-        log.error("涓庤澶�" + ipPort + "杩炴帴鏂紑!");
-        // 杩炴帴鏂紑鍚庣殑鏈�鍚庡鐞�
-        ctx.pipeline().remove(this);
-        ctx.deregister();
-        ctx.close();
-        // 灏嗗け璐ヤ俊鎭彃鍏et闆嗗悎
-        ArdEquipRadar radar = ClientInitialize.trueConnectMap.get(ipPort);
-        if (radar != null) {
-            ClientInitialize.falseConnectSet.add(radar);
-            ClientInitialize.trueConnectMap.remove(ipPort);
-        }
+        String ip = ipSocket.getHostString();
+        int port = ipSocket.getPort();
+        log.error("涓庨浄杈捐澶囥��" + ip + ":" + port + "銆戣繛鎺ユ柇寮�!");
         super.channelInactive(ctx);
     }
 
@@ -85,11 +77,11 @@
     public void channelRead0(ChannelHandlerContext ctx, ByteBuf msg) {
         InetSocketAddress ipSocket = (InetSocketAddress) ctx.channel().remoteAddress();
         String ipPort = ipSocket.getHostString() + ":" + ipSocket.getPort();
-        ArdEquipRadar radar = ClientInitialize.trueConnectMap.get(ipPort);
+        ArdEquipRadar radar = RadarNettyTcpClient.RADAR_MAP.get(ipPort);
         if (radar == null) {
             return;
         }
-        MessageHandler messageHandler = ClientInitialize.SucMessageHandlerMap.get(ipPort);
+        MessageHandler messageHandler = RadarNettyTcpClient.SucMessageHandlerMap.get(ipPort);
         if (messageHandler == null) {
             return;
         }
@@ -218,28 +210,28 @@
                 byte[] dfScanAngV = Arrays.copyOfRange(data, 4, 12);
                 dfScanAngV = toLittleEndian(dfScanAngV);
                 double ScanAngV = ByteUtils.bytesToDouble(dfScanAngV);
-                log.info("璁惧鎵弿鐨勪刊浠拌搴�:" + ScanAngV);
+                //log.info("璁惧鎵弿鐨勪刊浠拌搴�:" + ScanAngV);
 
                 byte[] dfAngDy = Arrays.copyOfRange(data, 12, 20);
                 dfAngDy = toLittleEndian(dfAngDy);
                 double AngDy = ByteUtils.bytesToDouble(dfAngDy);
-                log.info("鍛ㄨ鍥惧儚鐨勫瀭鐩磋鍦鸿搴�:" + AngDy);
+                //log.info("鍛ㄨ鍥惧儚鐨勫瀭鐩磋鍦鸿搴�:" + AngDy);
 
                 byte[] iImgW = Arrays.copyOfRange(data, 20, 24);
                 iImgW = toLittleEndian(iImgW);
                 int ImgW = ByteUtils.bytesToDecimal(iImgW);
-                log.info("鍛ㄨ鍥惧儚鐨勫:" + ImgW);
+                //log.info("鍛ㄨ鍥惧儚鐨勫:" + ImgW);
                 byte[] iImgH = Arrays.copyOfRange(data, 24, 28);
                 iImgH = toLittleEndian(iImgH);
                 int ImgH = ByteUtils.bytesToDecimal(iImgH);
-                log.info("鍛ㄨ鍥惧儚鐨勯珮:" + ImgH);
+                //log.info("鍛ㄨ鍥惧儚鐨勯珮:" + ImgH);
 
                 byte[] cStat = Arrays.copyOfRange(data, 28, 29);
                 // 鎻愬彇绗�4浣嶈嚦绗�6浣嶇殑鍊�
                 cStat = toLittleEndian(cStat);
                 int Stat = cStat[0] & 0b00000001;
                 log.info("璁惧褰撳墠宸ヤ綔鐘舵��:" + Stat);
-                aroundScanfMap.put(radar.getIp()+":"+radar.getPort(),Stat);
+                aroundScanfMap.put(radar.getIp() + ":" + radar.getPort(), Stat);
 
             }
             //闆疯揪绉诲姩闃茬伀鎶ヨ

--
Gitblit v1.9.3