From 2b43275bd260eda468f305ebca4b4f4291b0605d Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: Wed, 23 Oct 2024 14:50:33 +0800
Subject: [PATCH] 优化netty连接

---
 ard-work/src/main/java/com/ard/tianyu/netty/handler/ClientHandler.java |   38 ++++++++++++++++++--------------------
 1 files changed, 18 insertions(+), 20 deletions(-)

diff --git a/ard-work/src/main/java/com/ard/tianyu/netty/handler/ClientHandler.java b/ard-work/src/main/java/com/ard/tianyu/netty/handler/ClientHandler.java
index 00b850f..a84e551 100644
--- a/ard-work/src/main/java/com/ard/tianyu/netty/handler/ClientHandler.java
+++ b/ard-work/src/main/java/com/ard/tianyu/netty/handler/ClientHandler.java
@@ -10,9 +10,7 @@
 import io.netty.handler.timeout.IdleState;
 import io.netty.handler.timeout.IdleStateEvent;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
-
 import javax.annotation.Resource;
 import java.net.InetSocketAddress;
 import java.util.concurrent.TimeUnit;
@@ -23,18 +21,18 @@
 @ChannelHandler.Sharable
 public class ClientHandler extends SimpleChannelInboundHandler<BaseCommand> {
 
-    @Autowired
-    ITyService tyService;
+    @Resource
+    private ITyService tyService;
 
     @Resource
     private TyNettyTcpClient tyNettyTcpClient;
 
     @Override
-    public void channelRead0(ChannelHandlerContext ctx, BaseCommand command){
+    public void channelRead0(ChannelHandlerContext ctx, BaseCommand command) {
         InetSocketAddress ipSocket = (InetSocketAddress) ctx.channel().remoteAddress();
         String host = ipSocket.getHostString();
         int port = ipSocket.getPort();
-        //tyService.processMessage(host + "/" + port, msg);
+        tyService.processMessage(host + ":" + port, command);
     }
 
     @Override
@@ -47,7 +45,7 @@
 
     @Override
     public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {
-        cause.printStackTrace();
+        log.error("发生异常: ", cause); // 使用日志记录异常
         ctx.close();
     }
 
@@ -58,9 +56,9 @@
             if (event.state() == IdleState.READER_IDLE) {
                 log.info("客户端读超时");
             } else if (event.state() == IdleState.WRITER_IDLE) {
-//                HeartbeatCommand msg = new HeartbeatCommand(System.currentTimeMillis());
-//                log.info("发送⼼跳!");//1652345657305  1652345707631
-//                ctx.writeAndFlush(msg);
+              //  log.info("写空闲发送⼼跳!");
+               // HeartbeatCommand msg = new HeartbeatCommand(System.currentTimeMillis());
+                //ctx.writeAndFlush(msg);
             } else if (event.state() == IdleState.ALL_IDLE) {
                 log.info("客户端所有操作超时");
             }
@@ -72,18 +70,18 @@
         InetSocketAddress ipSocket = (InetSocketAddress) ctx.channel().remoteAddress();
         int port = ipSocket.getPort();
         String host = ipSocket.getHostString();
-        log.error("与天宇设备" + host + ":" + port + "连接断开!");
-        ctx.channel().eventLoop().schedule(new Runnable() {
-            @Override
-            public void run() {
-                log.error("服务端链接不上,开始重连操作...");
-                try {
-                    tyNettyTcpClient.initOneConnection(host, port);
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
+        log.error("与天宇服务{}:{}连接断开!", host, port);
+
+        ctx.channel().eventLoop().schedule(() -> {
+            log.error("天宇服务端链接不上,开始重连操作...");
+            try {
+                tyNettyTcpClient.initConnection(host, port);
+            } catch (Exception e) {
+                log.error("天宇服务端连接异常: {}", e.getMessage());
             }
         }, 5, TimeUnit.SECONDS);
+
         super.channelInactive(ctx);
     }
+
 }

--
Gitblit v1.9.3