From fdcf461fbfa3bcd650685743e891ad3357898f0c Mon Sep 17 00:00:00 2001
From: 562935844@qq.com
Date: 星期四, 31 八月 2023 17:36:50 +0800
Subject: [PATCH] 更新sdk

---
 HDLSDK/hdl-socket/src/main/java/com/hdl/sdk/socket/SocketBoot.java |   61 +++++++++++++++---------------
 1 files changed, 30 insertions(+), 31 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 5da2b6b..3f45e3a 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
@@ -1,13 +1,7 @@
 package com.hdl.sdk.socket;
 
 import android.text.TextUtils;
-import android.util.Log;
 
-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;
@@ -15,15 +9,11 @@
 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.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.LinkedBlockingDeque;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.atomic.AtomicInteger;
 
 /**
  * Created by Tong on 2021/9/26.
@@ -38,18 +28,20 @@
 
     private final IClient client;
     private IHeartbeat iHeartbeat;
-    public void SetHeartbeat(IHeartbeat iHeartbeat){
-        this.iHeartbeat=iHeartbeat;
+
+    public void SetHeartbeat(IHeartbeat iHeartbeat) {
+        this.iHeartbeat = iHeartbeat;
     }
+
     /**
      * 褰撳墠鎺ユ敹鍒版暟鎹殑鏃堕棿
      */
-    private static long time=System.currentTimeMillis();
+    private static long time = System.currentTimeMillis();
 
     /**
      * tcp鏄惁宸茬粡杩炴帴
      */
-    private boolean connected=false;
+    private boolean connected = false;
 
     public IClient getClient() {
         return client;
@@ -57,7 +49,7 @@
 
     private final BlockingQueue<SocketRequest> mMessageQueue = new LinkedBlockingDeque<>();
 
-    private final ArrayMap<String, SendListener> sendMap = new ArrayMap<>();
+    private final ConcurrentMap<String, SendListener> sendMap = new ConcurrentHashMap<>();
 
     public SocketBoot(IClient client) {
         this.client = client;
@@ -74,12 +66,13 @@
         try {
             LogUtils.i("TCP杩炴帴");
             client.onConnectStatus(ConnectStatus.CONNECTING);
-            Thread.sleep(700);
+            Thread.sleep(1000);
             client.connect();
-            connected=true;
+            connected = true;
+            LogUtils.i("TCP杩炴帴鎴愬姛");
             client.onConnectStatus(ConnectStatus.CONNECTED);
-        }catch(Exception e) {
-            LogUtils.e("杩炴帴寮傚父"+e.getMessage());
+        } catch (Exception e) {
+            LogUtils.e("杩炴帴寮傚父" + e.getMessage());
         }
     }
 
@@ -95,11 +88,19 @@
                 public void run() {
                     while (true) {
                         try {
+                            if (!connected) {
+                                Thread.sleep(200);
+                                continue;
+                            }
                             SocketRequest socketRequest = mMessageQueue.take();
 //                            final String sendStr = new String(socketRequest.getData(), 0, socketRequest.getData().length);
 //                            LogUtils.i("鍙戦�佹暟鎹細" + sendStr);
+                            if (System.currentTimeMillis() - socketRequest.getTime() > 5000) {
+                                continue;
+                            }
                             final String action = socketRequest.getAction();
                             try {
+
                                 client.sendMsg(socketRequest.getData());
                                 if (!TextUtils.isEmpty(action)) {
                                     SendListener sendListener = sendMap.get(action);
@@ -140,7 +141,7 @@
                             if (connected) {
                                 //璇诲彇鏁版嵁
                                 client.onHandleResponse();
-                                time= System.currentTimeMillis();
+                                time = System.currentTimeMillis();
                             } else {
                                 try {
                                     Thread.sleep(1000);
@@ -173,9 +174,9 @@
                             if (!connected) {
                                 reconect();
                             }
-                            Thread.sleep(3*1000);
+                            Thread.sleep(3 * 1000);
                         } catch (Exception e) {
-
+                            LogUtils.e("瀹氭椂杩炴帴澶辫触:" + e.getMessage());
                         }
                     }
                 }
@@ -198,15 +199,12 @@
                             if (connected && 10 * 1000 < (System.currentTimeMillis() - time)) {
                                 time = System.currentTimeMillis();
                                 //蹇冭烦妫�娴�
-                                try {
-                                    if (iHeartbeat != null)
-                                        iHeartbeat.heartbeat();
-                                } catch (Exception e) {
-                                }
+                                if (iHeartbeat != null)
+                                    iHeartbeat.heartbeat();
                             }
                             Thread.sleep(1000);
                         } catch (Exception e) {
-
+                            LogUtils.e("瀹氭椂蹇冭烦妫�娴嬬綉鍏冲紓甯革細" + e.getMessage());
                         }
                     }
                 }
@@ -225,6 +223,7 @@
 
     /**
      * 鍙戦�佹棤闇�鍥炶皟
+     *
      * @param msg 鍙戦�佺殑鏁版嵁
      */
     public void sendMsg(byte[] msg) {
@@ -243,7 +242,7 @@
             }
             mMessageQueue.put(request);
         } catch (Exception e) {
-
+            LogUtils.e("鍙戦�佹暟鎹け璐ワ細" + e.getMessage());
         }
     }
 

--
Gitblit v1.8.0