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