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