浏览代码

<tcp连接优化>

weizhengliang 4 年之前
父节点
当前提交
e1c2437293
共有 1 个文件被更改,包括 9 次插入0 次删除
  1. 9 0
      middleware/src/main/code/com/wdkl/ncs/android/middleware/tcp/TcpClient.java

+ 9 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/tcp/TcpClient.java

@@ -39,6 +39,8 @@ public class TcpClient {
     private Integer retrySeconds = 5;
     //重试计数
     private Integer retryTimes = 1;
+    //tcp是否完成初始化
+    private boolean inited = false;
 
 
     //单例
@@ -73,12 +75,18 @@ public class TcpClient {
                         socketChannel.pipeline().addLast(tcpClientHandler);
                     }
                 }).remoteAddress(serverIP, serverPort);
+        inited = true;
         doConnect();
         System.out.println("connect server host: " + serverIP + ", port: " + serverPort);
     }
 
     //独立连接方法,用于重新连接
     public synchronized void doConnect() {
+        if (!inited) {
+            System.out.println("tcp is not initialized");
+            return;
+        }
+
         if (channel != null && channel.isActive()) {
             System.out.println("TcpClient connecting");
             return;
@@ -103,6 +111,7 @@ public class TcpClient {
                             if (retryTimes>30){
                                 System.out.println("重试"+(retryTimes-1)+"次,结束");
                                 workGroup.shutdownGracefully();
+                                inited = false;
                                 //todo: 从API获取新的serverIP和serverPort,全新连接
                                 TcpClient.getInstance().init(Constants.Companion.getTcp_ip(), Integer.parseInt(Constants.Companion.getTcp_port()), Integer.parseInt(Constants.Companion.getReader_idle_time()));
                                 return;