From 3be4440f6800e10efd8db51b957d17a6cc3b39df Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期二, 27 六月 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