Tong
2022-04-19 8adb5e06a5fcfad9a634944c0d65fc70c5c2527f
HDLSDK/hdl-socket/src/main/java/com/hdl/sdk/socket/SocketBoot.java
@@ -1,13 +1,7 @@
package com.hdl.sdk.socket;
import android.support.v4.util.ArrayMap;
import android.text.TextUtils;
import android.util.Log;
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;
@@ -76,11 +68,11 @@
            client.onConnectStatus(ConnectStatus.CONNECTING);
            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());
        }
    }
@@ -141,7 +133,7 @@
                            if (connected) {
                                //读取数据
                                client.onHandleResponse();
                                time= System.currentTimeMillis();
                                time = System.currentTimeMillis();
                            } else {
                                try {
                                    Thread.sleep(1000);
@@ -174,7 +166,7 @@
                            if (!connected) {
                                reconect();
                            }
                            Thread.sleep(3*1000);
                            Thread.sleep(3 * 1000);
                        } catch (Exception e) {
                            LogUtils.e("定时连接失败:" + e.getMessage());
                        }
@@ -223,6 +215,7 @@
    /**
     * 发送无需回调
     *
     * @param msg 发送的数据
     */
    public void sendMsg(byte[] msg) {