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

---
 src/main/java/com/ard/utils/netty/tcp/DynamicClient.java                         |    2 +-
 src/main/java/com/ard/utils/netty/tcp/BootNettyChannelInboundHandlerAdapter.java |   20 +++++++++++---------
 src/main/java/com/ard/utils/netty/tcp/ClientInitialize.java                      |    6 ++++--
 src/main/java/com/ard/utils/netty/tcp/ClientHandler.java                         |    3 ++-
 src/main/java/com/ard/utils/netty/tcp/MessageParsing.java                        |    4 ++--
 src/main/java/com/ard/utils/netty/tcp/BootNettyClient.java                       |    3 +--
 src/main/java/com/ard/utils/netty/tcp/DynamicClientHandler.java                  |   12 ++++++------
 7 files changed, 27 insertions(+), 23 deletions(-)

diff --git a/src/main/java/com/ard/utils/netty/tcp/BootNettyChannelInboundHandlerAdapter.java b/src/main/java/com/ard/utils/netty/tcp/BootNettyChannelInboundHandlerAdapter.java
index 561d287..5e49218 100644
--- a/src/main/java/com/ard/utils/netty/tcp/BootNettyChannelInboundHandlerAdapter.java
+++ b/src/main/java/com/ard/utils/netty/tcp/BootNettyChannelInboundHandlerAdapter.java
@@ -10,6 +10,7 @@
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.EmptyByteBuf;
 import io.netty.channel.*;
+import io.netty.util.CharsetUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 
@@ -33,17 +34,18 @@
         InetSocketAddress inSocket = (InetSocketAddress) ctx.channel().remoteAddress();
         String host = inSocket.getAddress().getHostAddress();
         int port = inSocket.getPort();
+        //log.info("鏀跺埌鏉ヨ嚜 {}:{} 鐨勬暟鎹畕}", host, port,msg.toString(CharsetUtil.UTF_8));
         ArdEquipRadar ardEquipRadar = BootNettyClientChannelCache.getRadar(host + ":" + port);
         if (ardEquipRadar != null) {
-            // 鍒涘缓缂撳啿涓瓧鑺傛暟鐨勫瓧鑺傛暟缁�
-            byte[] byteArray = new byte[msg.readableBytes()];
-            // 鍐欏叆鏁扮粍
-            msg.readBytes(byteArray);
-            // 澶勭悊鎺ユ敹鍒扮殑娑堟伅
-            byte[] bytes = MessageParsing.receiveCompletePacket(byteArray);
-            if (bytes != null) {
-                processData(ardEquipRadar, bytes);
-            }
+            //// 鍒涘缓缂撳啿涓瓧鑺傛暟鐨勫瓧鑺傛暟缁�
+            //byte[] byteArray = new byte[msg.readableBytes()];
+            //// 鍐欏叆鏁扮粍
+            //msg.readBytes(byteArray);
+            //// 澶勭悊鎺ユ敹鍒扮殑娑堟伅
+            //byte[] bytes = MessageParsing.receiveCompletePacket(byteArray);
+            //if (bytes != null) {
+            //    processData(ardEquipRadar, bytes);
+            //}
         }
     }
 
diff --git a/src/main/java/com/ard/utils/netty/tcp/BootNettyClient.java b/src/main/java/com/ard/utils/netty/tcp/BootNettyClient.java
index da103a6..6a44e88 100644
--- a/src/main/java/com/ard/utils/netty/tcp/BootNettyClient.java
+++ b/src/main/java/com/ard/utils/netty/tcp/BootNettyClient.java
@@ -18,7 +18,7 @@
 
 @Slf4j(topic = "netty")
 @Component
-public class BootNettyClient implements ApplicationRunner {
+public class BootNettyClient {
     @Resource
     IArdEquipRadarService ardEquipRadarService;
     @Resource
@@ -94,7 +94,6 @@
     /**
      * 鍒濆鍖栨柟娉�
      */
-    @Override
     public void run(ApplicationArguments args) {
         if (!nettyTcpConfig.getEnabled()) {
             return;
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 4d22142..c59dd32 100644
--- a/src/main/java/com/ard/utils/netty/tcp/ClientHandler.java
+++ b/src/main/java/com/ard/utils/netty/tcp/ClientHandler.java
@@ -88,10 +88,11 @@
         int port = ipSocket.getPort();
         String host = ipSocket.getHostString();
         ArdEquipRadar ardEquipRadar = ClientInitialize.tureConnectMap.get(host+":"+port);
+        MessageParsing messageParsing = ClientInitialize.MessageMap.get(host + ":" + port);
         // 澶勭悊鎺ユ敹鍒扮殑娑堟伅
         byte[] byteArray = new byte[msg.readableBytes()];
         msg.getBytes(msg.readerIndex(), byteArray);
-        byte[] bytes = MessageParsing.receiveCompletePacket(byteArray);
+        byte[] bytes = messageParsing.receiveCompletePacket(byteArray);
         if (bytes != null) {
             processData(ardEquipRadar, bytes);
         }
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 cf9ef9a..ddd4f9c 100644
--- a/src/main/java/com/ard/utils/netty/tcp/ClientInitialize.java
+++ b/src/main/java/com/ard/utils/netty/tcp/ClientInitialize.java
@@ -37,7 +37,7 @@
 @Component
 @Slf4j(topic = "netty")
 @Order(2)
-public class ClientInitialize {
+public class ClientInitialize implements ApplicationRunner{
     @Resource
     NettyTcpConfiguration nettyTcpConfig;
     @Resource
@@ -47,6 +47,7 @@
     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();
     /**
      * Netty鍒濆鍖栭厤缃�
      */
@@ -114,6 +115,7 @@
                 falseConnectSet.remove(ardEquipRadar);
                 // 杩炴帴鎴愬姛淇℃伅鍐欏叆map
                 tureConnectMap.put(host+":"+port, ardEquipRadar);
+                MessageMap.put(host+":"+port,new MessageParsing());
                 SuccessConnectMap.put(ardEquipRadar.getId(),futureListener.channel());
             }
         });
@@ -122,7 +124,7 @@
     /**
      * 鍒濆鍖栨柟娉�
      */
-   // @Override
+    @Override
     public void run(ApplicationArguments args) {
         if (!nettyTcpConfig.getEnabled()) {
             return;
diff --git a/src/main/java/com/ard/utils/netty/tcp/DynamicClient.java b/src/main/java/com/ard/utils/netty/tcp/DynamicClient.java
index 8d88675..82dfcdc 100644
--- a/src/main/java/com/ard/utils/netty/tcp/DynamicClient.java
+++ b/src/main/java/com/ard/utils/netty/tcp/DynamicClient.java
@@ -27,7 +27,7 @@
  **/
 @Slf4j(topic = "netty")
 @Component
-public class DynamicClient {
+public class DynamicClient{
     @Resource
     IArdEquipRadarService ardEquipRadarService;
     @Resource
diff --git a/src/main/java/com/ard/utils/netty/tcp/DynamicClientHandler.java b/src/main/java/com/ard/utils/netty/tcp/DynamicClientHandler.java
index 5eb32a1..1809740 100644
--- a/src/main/java/com/ard/utils/netty/tcp/DynamicClientHandler.java
+++ b/src/main/java/com/ard/utils/netty/tcp/DynamicClientHandler.java
@@ -47,12 +47,12 @@
         Channel channel = ctx.channel();
         ArdEquipRadar ardEquipRadar = DynamicClient.ConnectMap.get(channel);
         // 澶勭悊鎺ユ敹鍒扮殑娑堟伅
-        byte[] byteArray = new byte[msg.readableBytes()];
-        msg.getBytes(msg.readerIndex(), byteArray);
-        byte[] bytes = MessageParsing.receiveCompletePacket(byteArray);
-        if (bytes != null) {
-            processData(ardEquipRadar, bytes);
-        }
+        //byte[] byteArray = new byte[msg.readableBytes()];
+        //msg.getBytes(msg.readerIndex(), byteArray);
+        //byte[] bytes = messageParsing.receiveCompletePacket(byteArray);
+        //if (bytes != null) {
+        //    processData(ardEquipRadar, bytes);
+        //}
     }
 
     @Override
diff --git a/src/main/java/com/ard/utils/netty/tcp/MessageParsing.java b/src/main/java/com/ard/utils/netty/tcp/MessageParsing.java
index 5326d47..4aac19d 100644
--- a/src/main/java/com/ard/utils/netty/tcp/MessageParsing.java
+++ b/src/main/java/com/ard/utils/netty/tcp/MessageParsing.java
@@ -16,12 +16,12 @@
  **/
 public class MessageParsing {
     // 鍒涘缓缂撳啿鍖哄垪琛�
-    private static List<Byte> buffer = new ArrayList<>();
+    private List<Byte> buffer = new ArrayList<>();
 
     /**
      * 鎺ユ敹瀹屾暣鍖�
      */
-    public static byte[] receiveCompletePacket(byte[] receivedData) {
+    public byte[] receiveCompletePacket(byte[] receivedData) {
         // 瀹氫箟鍖呭熬瀛楄妭搴忓垪
         byte[] packetEnd = {0x01, 0x02, 0x00};
         // 娣诲姞宸叉帴鏀剁殑鏁版嵁鍒扮紦鍐插尯

--
Gitblit v1.9.3