src/main/java/com/ard/utils/netty/tcp/BootNettyChannelInboundHandlerAdapter.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ard/utils/netty/tcp/BootNettyClient.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ard/utils/netty/tcp/ClientHandler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ard/utils/netty/tcp/ClientInitialize.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ard/utils/netty/tcp/DynamicClient.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ard/utils/netty/tcp/DynamicClientHandler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ard/utils/netty/tcp/MessageParsing.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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); //} } } 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; 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); } 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; 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 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 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}; // 添加已接收的数据到缓冲区