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