From 8f224dbf1a1bd1a65dead7ceda8dd0a3fa567115 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期四, 28 十二月 2023 15:57:09 +0800
Subject: [PATCH] 优化雷达tcp客户端

---
 src/main/java/com/ard/utils/netty/tcp/ClientInitialize.java |   52 ++++++++++++++++++++++------------------------------
 1 files changed, 22 insertions(+), 30 deletions(-)

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 ddd4f9c..b30b2b5 100644
--- a/src/main/java/com/ard/utils/netty/tcp/ClientInitialize.java
+++ b/src/main/java/com/ard/utils/netty/tcp/ClientInitialize.java
@@ -1,13 +1,5 @@
 package com.ard.utils.netty.tcp;
 
-/**
- * @Description:
- * @ClassName: init
- * @Author: 鍒樿嫃涔�
- * @Date: 2023骞�07鏈�05鏃�13:11
- * @Version: 1.0
- **/
-
 import com.ard.alarm.radar.domain.ArdEquipRadar;
 import com.ard.alarm.radar.service.IArdEquipRadarService;
 import com.ard.utils.netty.config.NettyTcpConfiguration;
@@ -37,17 +29,18 @@
 @Component
 @Slf4j(topic = "netty")
 @Order(2)
-public class ClientInitialize implements ApplicationRunner{
+public class ClientInitialize implements ApplicationRunner {
     @Resource
     NettyTcpConfiguration nettyTcpConfig;
     @Resource
     IArdEquipRadarService ardEquipRadarService;
 
     private Bootstrap bootstrap;
-    public static CopyOnWriteArraySet<ArdEquipRadar> falseConnectSet = new CopyOnWriteArraySet();
-    public static ConcurrentHashMap<String, ArdEquipRadar> tureConnectMap = new ConcurrentHashMap();
-    public static ConcurrentHashMap<String, Object> SuccessConnectMap = new ConcurrentHashMap();
-    public static ConcurrentHashMap<String, MessageParsing> MessageMap = new ConcurrentHashMap();
+    public static CopyOnWriteArraySet<ArdEquipRadar> falseConnectSet = new CopyOnWriteArraySet();//澶辫触杩炴帴鐨勯浄杈維et
+    public static ConcurrentHashMap<String, ArdEquipRadar> trueConnectMap = new ConcurrentHashMap();//鎴愬姛杩炴帴鐨刬p绔彛瀵瑰簲鐨勯浄杈�
+    public static ConcurrentHashMap<String, MessageHandler> SucMessageHandlerMap = new ConcurrentHashMap();//鎴愬姛杩炴帴鐨刬p绔彛瀵瑰簲鐨勬姤鏂囪В鏋愬櫒
+    public static ConcurrentHashMap<String, Channel> SucChannelMap = new ConcurrentHashMap();//鎴愬姛杩炴帴鐨刬p绔彛瀵瑰簲鐨刵etty閫氶亾
+
     /**
      * Netty鍒濆鍖栭厤缃�
      */
@@ -65,7 +58,7 @@
                     }
                 });
 
-        // 寮傛鎸佺画鐩戝惉杩炴帴澶辫触鐨勫湴鍧�
+        //寮傛鎸佺画鐩戝惉杩炴帴澶辫触鐨勫湴鍧�
         CompletableFuture.runAsync(new Runnable() {
             @Override
             public void run() {
@@ -75,8 +68,8 @@
                             // 寰幆闆嗗悎鍐呭厓绱�
                             falseConnectSet.forEach(new Consumer<ArdEquipRadar>() {
                                 @Override
-                                public void accept(ArdEquipRadar ardEquipRadar) {
-                                    connectServer(ardEquipRadar);
+                                public void accept(ArdEquipRadar radar) {
+                                    connectServer(radar);
                                 }
                             });
                         }
@@ -99,24 +92,23 @@
         // 鑾峰彇鍦板潃鍙婄鍙�
         String host = ardEquipRadar.getIp();
         Integer port = ardEquipRadar.getPort();
+        String ipPort = host + ":" + port;
         // 寮傛杩炴帴tcp鏈嶅姟绔�
         bootstrap.remoteAddress(host, port).connect().addListener((ChannelFuture futureListener) -> {
-            if (!futureListener.isSuccess()) {
-                log.debug("闆疯揪銆�" + host + ":" + port + "銆戣繛鎺ュけ璐�");
-                futureListener.channel().close();
-                // 杩炴帴澶辫触淇℃伅鎻掑叆Set
-                falseConnectSet.add(ardEquipRadar);
-                // 杩炴帴澶辫触淇℃伅浠巑ap绉婚櫎
-                tureConnectMap.remove( host + ":" + port);
-                SuccessConnectMap.remove(ardEquipRadar.getId());
-            } else {
-                log.debug("闆疯揪銆�" + host + ":" + port + "銆戣繛鎺ユ垚鍔�");
+            if (futureListener.isSuccess()) {
+                log.debug("闆疯揪銆�" + ipPort + "銆戣繛鎺ユ垚鍔�");
                 // 杩炴帴鎴愬姛淇℃伅浠嶴et鎷旈櫎
                 falseConnectSet.remove(ardEquipRadar);
                 // 杩炴帴鎴愬姛淇℃伅鍐欏叆map
-                tureConnectMap.put(host+":"+port, ardEquipRadar);
-                MessageMap.put(host+":"+port,new MessageParsing());
-                SuccessConnectMap.put(ardEquipRadar.getId(),futureListener.channel());
+                trueConnectMap.put(ipPort, ardEquipRadar);
+                SucMessageHandlerMap.put(ipPort, new MessageHandler());
+                SucChannelMap.put(ipPort, futureListener.channel());
+            } else {
+                log.debug("闆疯揪銆�" + ipPort + "銆戣繛鎺ュけ璐�");
+                futureListener.channel().close();
+                // 杩炴帴澶辫触淇℃伅鎻掑叆Set
+                falseConnectSet.add(ardEquipRadar);
+
             }
         });
     }
@@ -134,7 +126,7 @@
         for (ArdEquipRadar ardEquipRadar : ardEquipRadars) {
             String host = ardEquipRadar.getIp();
             Integer port = Integer.valueOf(ardEquipRadar.getPort());
-            log.debug("TCP client try to connect radar銆�" + host + ":" + port+"銆�");
+            log.debug("TCP client try to connect radar銆�" + host + ":" + port + "銆�");
             connectServer(ardEquipRadar);//杩炴帴姣忎竴涓浄杈炬湇鍔�
         }
     }

--
Gitblit v1.9.3