From 3be4440f6800e10efd8db51b957d17a6cc3b39df Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: Tue, 27 Jun 2023 16:17:07 +0800
Subject: [PATCH] 增加雷达报警点坐标计算 增加雷达报警数据推送mqtt
---
src/main/java/com/ard/utils/tcp/NettyTcpClient.java | 65 +++++++++++++++++++-------------
1 files changed, 39 insertions(+), 26 deletions(-)
diff --git a/src/main/java/com/ard/utils/tcp/NettyTcpClient.java b/src/main/java/com/ard/utils/tcp/NettyTcpClient.java
index 2d6c324..2eab8e2 100644
--- a/src/main/java/com/ard/utils/tcp/NettyTcpClient.java
+++ b/src/main/java/com/ard/utils/tcp/NettyTcpClient.java
@@ -1,5 +1,6 @@
package com.ard.utils.tcp;
+import com.ard.alarm.radar.domain.ArdEquipRadar;
import io.netty.bootstrap.Bootstrap;
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelFutureListener;
@@ -11,6 +12,8 @@
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.stereotype.Component;
+
+import java.util.concurrent.TimeUnit;
/**
* @Description:
@@ -24,33 +27,43 @@
@Slf4j(topic = "radar")
public class NettyTcpClient {
@Async
- public void init(String host, Integer port) {
- NioEventLoopGroup group = new NioEventLoopGroup();
- try {
- Bootstrap bootstrap = new Bootstrap();
- bootstrap.group(group)
- .channel(NioSocketChannel.class)
- .handler(new ChannelInitializer<SocketChannel>() {
- @Override
- protected void initChannel(SocketChannel ch) throws Exception {
- ch.pipeline().addLast(new NettyTcpClientHandler());
- }
- });
- ChannelFuture future = bootstrap.connect(host, port).sync();
- // 添加连接成功的监听器
- future.addListener((ChannelFutureListener) future1 -> {
- if (future1.isSuccess()) {
- log.info("tcp连接成功"+host+":"+port);
- } else {
- log.info("tcp连接失败"+host+":"+port);
- }
- });
- future.channel().closeFuture().sync();
+ public void init(ArdEquipRadar ardEquipRadar) {
- } catch (Exception ex) {
- log.error("nettyTcp客户端初始化异常:" + ex.getMessage());
- } finally {
- group.shutdownGracefully();
+ while (true) {
+ NioEventLoopGroup group = new NioEventLoopGroup();
+ try {
+ Bootstrap bootstrap = new Bootstrap();
+ bootstrap.group(group)
+ .channel(NioSocketChannel.class)
+ .handler(new ChannelInitializer<SocketChannel>() {
+ @Override
+ protected void initChannel(SocketChannel ch) throws Exception {
+ ch.pipeline().addLast(new NettyTcpClientHandler(ardEquipRadar));
+ }
+ });
+ String host = ardEquipRadar.getIp();
+ Integer port = ardEquipRadar.getPort();
+ ChannelFuture future = bootstrap.connect(host, port).sync();
+ // 添加连接成功的监听器
+ future.addListener((ChannelFutureListener) future1 -> {
+ if (future1.isSuccess()) {
+ log.info("tcp连接成功" + host + ":" + port);
+ } else {
+ log.info("tcp连接失败" + host + ":" + port);
+ }
+ });
+ future.channel().closeFuture().sync();
+
+ } catch (Exception e) {
+ log.error("nettyTcp客户端初始化异常:" + e.getMessage());
+ try {
+ TimeUnit.SECONDS.sleep(5); // 等待5秒后重新连接
+ } catch (InterruptedException ex) {
+ Thread.currentThread().interrupt();
+ }
+ } finally {
+ group.shutdownGracefully();
+ }
}
}
}
--
Gitblit v1.9.3