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