From af2cbc2a24b3724e7fc3e6b42e134b21a3144c75 Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期四, 17 二月 2022 15:33:19 +0800
Subject: [PATCH] 过滤掉非json数据不传给三方使用

---
 HDLSDK/hdl-socket/src/main/java/com/hdl/sdk/socket/SocketBoot.java |   53 +++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 51 insertions(+), 2 deletions(-)

diff --git a/HDLSDK/hdl-socket/src/main/java/com/hdl/sdk/socket/SocketBoot.java b/HDLSDK/hdl-socket/src/main/java/com/hdl/sdk/socket/SocketBoot.java
index fda635c..5da2b6b 100644
--- a/HDLSDK/hdl-socket/src/main/java/com/hdl/sdk/socket/SocketBoot.java
+++ b/HDLSDK/hdl-socket/src/main/java/com/hdl/sdk/socket/SocketBoot.java
@@ -5,13 +5,18 @@
 
 import androidx.collection.ArrayMap;
 
+import com.google.gson.JsonObject;
+import com.hdl.sdk.common.config.TopicConstant;
+import com.hdl.sdk.common.utils.IdUtils;
 import com.hdl.sdk.common.utils.LogUtils;
 import com.hdl.sdk.common.utils.ThreadToolUtils;
 import com.hdl.sdk.socket.annotation.ConnectStatus;
 import com.hdl.sdk.socket.client.IClient;
+import com.hdl.sdk.socket.client.IHeartbeat;
 import com.hdl.sdk.socket.listener.SendListener;
 
 import java.net.ConnectException;
+import java.util.Date;
 import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.LinkedBlockingDeque;
@@ -29,8 +34,17 @@
     private ExecutorService connectThread;
     private ExecutorService sendThread;
     private ExecutorService receiveThread;
+    private ExecutorService heartbeatThread;
 
     private final IClient client;
+    private IHeartbeat iHeartbeat;
+    public void SetHeartbeat(IHeartbeat iHeartbeat){
+        this.iHeartbeat=iHeartbeat;
+    }
+    /**
+     * 褰撳墠鎺ユ敹鍒版暟鎹殑鏃堕棿
+     */
+    private static long time=System.currentTimeMillis();
 
     /**
      * tcp鏄惁宸茬粡杩炴帴
@@ -50,6 +64,7 @@
         initConnectThread();
         initReceiveThread();
         initSendThread();
+        initHeartbeat();
     }
 
     /**
@@ -64,7 +79,7 @@
             connected=true;
             client.onConnectStatus(ConnectStatus.CONNECTED);
         }catch(Exception e) {
-            LogUtils.e(e.getMessage());
+            LogUtils.e("杩炴帴寮傚父"+e.getMessage());
         }
     }
 
@@ -125,6 +140,7 @@
                             if (connected) {
                                 //璇诲彇鏁版嵁
                                 client.onHandleResponse();
+                                time= System.currentTimeMillis();
                             } else {
                                 try {
                                     Thread.sleep(1000);
@@ -157,7 +173,7 @@
                             if (!connected) {
                                 reconect();
                             }
-                            Thread.sleep(10*1000);
+                            Thread.sleep(3*1000);
                         } catch (Exception e) {
 
                         }
@@ -166,6 +182,39 @@
             });
         }
     }
+
+    /**
+     * 鍒濆鍖栭噸鏂板績璺崇嚎绋�
+     */
+    private void initHeartbeat() {
+        if (heartbeatThread == null) {
+            heartbeatThread = ThreadToolUtils.getInstance().newFixedThreadPool(1);
+            heartbeatThread.execute(new Runnable() {
+                @Override
+                public void run() {
+                    while (true) {
+                        try {
+                            //10绉�
+                            if (connected && 10 * 1000 < (System.currentTimeMillis() - time)) {
+                                time = System.currentTimeMillis();
+                                //蹇冭烦妫�娴�
+                                try {
+                                    if (iHeartbeat != null)
+                                        iHeartbeat.heartbeat();
+                                } catch (Exception e) {
+                                }
+                            }
+                            Thread.sleep(1000);
+                        } catch (Exception e) {
+
+                        }
+                    }
+                }
+            });
+        }
+    }
+
+
     /**
      * 閲嶆柊杩炴帴
      */

--
Gitblit v1.8.0