From b0926cd91651c158a3a1c070f9b6d2d8ce877cfe Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期二, 26 三月 2024 10:07:33 +0800 Subject: [PATCH] 优化雷达连接 --- src/main/java/com/ard/utils/netty/tcp/handler/ClientHandler.java | 42 +++++++++++++++++------------------------- 1 files changed, 17 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/ard/utils/netty/tcp/ClientHandler.java b/src/main/java/com/ard/utils/netty/tcp/handler/ClientHandler.java similarity index 94% rename from src/main/java/com/ard/utils/netty/tcp/ClientHandler.java rename to src/main/java/com/ard/utils/netty/tcp/handler/ClientHandler.java index 3b1ed6a..196c5d9 100644 --- a/src/main/java/com/ard/utils/netty/tcp/ClientHandler.java +++ b/src/main/java/com/ard/utils/netty/tcp/handler/ClientHandler.java @@ -1,18 +1,18 @@ -package com.ard.utils.netty.tcp; +package com.ard.utils.netty.tcp.handler; import com.alibaba.fastjson2.JSON; import com.ard.alarm.radar.domain.ArdAlarmRadar; import com.ard.alarm.radar.domain.ArdEquipRadar; import com.ard.alarm.radar.domain.RadarAlarmData; +import com.ard.utils.netty.tcp.RadarNettyTcpClient; import com.ard.utils.util.ByteUtils; import com.ard.utils.util.GisUtils; import com.ard.utils.mqtt.MqttProducer; import io.netty.buffer.ByteBuf; -import io.netty.channel.ChannelHandlerContext; -import io.netty.channel.ChannelId; -import io.netty.channel.SimpleChannelInboundHandler; +import io.netty.channel.*; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Component; import javax.xml.bind.DatatypeConverter; import java.net.InetSocketAddress; @@ -21,7 +21,7 @@ import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; -import static com.ard.utils.netty.tcp.ClientInitialize.aroundScanfMap; +import static com.ard.utils.netty.tcp.RadarNettyTcpClient.aroundScanfMap; import static com.ard.utils.util.ByteUtils.toLittleEndian; /** @@ -31,7 +31,8 @@ * @Date: 2023骞�07鏈�05鏃�13:13 * @Version: 1.0 **/ - +@Component +//@ChannelHandler.Sharable @Slf4j(topic = "netty") public class ClientHandler extends SimpleChannelInboundHandler<ByteBuf> { private ChannelHandlerContext context; @@ -58,18 +59,9 @@ @Override public void channelInactive(ChannelHandlerContext ctx) throws Exception { InetSocketAddress ipSocket = (InetSocketAddress) ctx.channel().remoteAddress(); - String ipPort = ipSocket.getHostString() + ":" + ipSocket.getPort(); - log.error("涓庤澶�" + ipPort + "杩炴帴鏂紑!"); - // 杩炴帴鏂紑鍚庣殑鏈�鍚庡鐞� - ctx.pipeline().remove(this); - ctx.deregister(); - ctx.close(); - // 灏嗗け璐ヤ俊鎭彃鍏et闆嗗悎 - ArdEquipRadar radar = ClientInitialize.trueConnectMap.get(ipPort); - if (radar != null) { - ClientInitialize.falseConnectSet.add(radar); - ClientInitialize.trueConnectMap.remove(ipPort); - } + String ip = ipSocket.getHostString(); + int port = ipSocket.getPort(); + log.error("涓庨浄杈捐澶囥��" + ip + ":" + port + "銆戣繛鎺ユ柇寮�!"); super.channelInactive(ctx); } @@ -85,11 +77,11 @@ public void channelRead0(ChannelHandlerContext ctx, ByteBuf msg) { InetSocketAddress ipSocket = (InetSocketAddress) ctx.channel().remoteAddress(); String ipPort = ipSocket.getHostString() + ":" + ipSocket.getPort(); - ArdEquipRadar radar = ClientInitialize.trueConnectMap.get(ipPort); + ArdEquipRadar radar = RadarNettyTcpClient.RADAR_MAP.get(ipPort); if (radar == null) { return; } - MessageHandler messageHandler = ClientInitialize.SucMessageHandlerMap.get(ipPort); + MessageHandler messageHandler = RadarNettyTcpClient.SucMessageHandlerMap.get(ipPort); if (messageHandler == null) { return; } @@ -218,28 +210,28 @@ byte[] dfScanAngV = Arrays.copyOfRange(data, 4, 12); dfScanAngV = toLittleEndian(dfScanAngV); double ScanAngV = ByteUtils.bytesToDouble(dfScanAngV); - log.info("璁惧鎵弿鐨勪刊浠拌搴�:" + ScanAngV); + //log.info("璁惧鎵弿鐨勪刊浠拌搴�:" + ScanAngV); byte[] dfAngDy = Arrays.copyOfRange(data, 12, 20); dfAngDy = toLittleEndian(dfAngDy); double AngDy = ByteUtils.bytesToDouble(dfAngDy); - log.info("鍛ㄨ鍥惧儚鐨勫瀭鐩磋鍦鸿搴�:" + AngDy); + //log.info("鍛ㄨ鍥惧儚鐨勫瀭鐩磋鍦鸿搴�:" + AngDy); byte[] iImgW = Arrays.copyOfRange(data, 20, 24); iImgW = toLittleEndian(iImgW); int ImgW = ByteUtils.bytesToDecimal(iImgW); - log.info("鍛ㄨ鍥惧儚鐨勫:" + ImgW); + //log.info("鍛ㄨ鍥惧儚鐨勫:" + ImgW); byte[] iImgH = Arrays.copyOfRange(data, 24, 28); iImgH = toLittleEndian(iImgH); int ImgH = ByteUtils.bytesToDecimal(iImgH); - log.info("鍛ㄨ鍥惧儚鐨勯珮:" + ImgH); + //log.info("鍛ㄨ鍥惧儚鐨勯珮:" + ImgH); byte[] cStat = Arrays.copyOfRange(data, 28, 29); // 鎻愬彇绗�4浣嶈嚦绗�6浣嶇殑鍊� cStat = toLittleEndian(cStat); int Stat = cStat[0] & 0b00000001; log.info("璁惧褰撳墠宸ヤ綔鐘舵��:" + Stat); - aroundScanfMap.put(radar.getIp()+":"+radar.getPort(),Stat); + aroundScanfMap.put(radar.getIp() + ":" + radar.getPort(), Stat); } //闆疯揪绉诲姩闃茬伀鎶ヨ -- Gitblit v1.9.3