From 7dcdbd35cd0979b6fa756fdcf388ab3c63edf545 Mon Sep 17 00:00:00 2001 From: 562935844@qq.com Date: 星期五, 13 五月 2022 15:14:15 +0800 Subject: [PATCH] 认证添加返回码0处理 --- HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java | 141 ++++++++++++++++++++++++++++++----------------- 1 files changed, 90 insertions(+), 51 deletions(-) diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java index 2048b61..9eb486c 100644 --- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java +++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java @@ -1,6 +1,7 @@ package com.hdl.sdk.connect.socket; import android.text.TextUtils; +import android.util.Log; import com.google.gson.JsonObject; import com.hdl.sdk.common.config.TopicConstant; @@ -26,6 +27,7 @@ import com.hdl.sdk.connect.protocol.LinkMessageEncoder; import com.hdl.sdk.socket.SocketBoot; import com.hdl.sdk.socket.SocketOptions; +import com.hdl.sdk.socket.client.IHeartbeat; import com.hdl.sdk.socket.client.TcpClient; import com.hdl.sdk.socket.codec.MessagePipeLine; import com.hdl.sdk.socket.listener.ConnectStatusListener; @@ -76,31 +78,44 @@ * 骞挎挱鑷韩淇℃伅缁欎富缃戝叧 */ private void broadcastRequest() { - String time = String.valueOf(System.currentTimeMillis()); - if (null == HDLLinkConfig.getInstance().getDeviceInfoBean()) { - LogUtils.i("DeviceInfoBean涓虹┖锛岃璁剧疆褰撳墠瀵硅薄"); - return; - } - BroadcastRequest request = new BroadcastRequest(IdUtils.getUUId(), time, HDLLinkConfig.getInstance().getDeviceInfoBean(), "200"); - HDLAuthSocket.getInstance().udpSendMsg("/user/all/custom/gateway/broadcast", GsonConvert.getGson().toJson(request), true, new HDLLinkResponseCallBack() { + new Thread(new Runnable() { @Override - public void onSuccess(LinkResponse msg) { - LogUtils.i("骞挎挱淇℃伅缁欎富缃戝叧鎴愬姛锛�"); - } + public void run() { + try { + LogUtils.i("骞挎挱璁惧鏈韩淇℃伅"); - @Override - public void onError(HDLLinkException e) { + String time = String.valueOf(System.currentTimeMillis()); + if (null == HDLLinkConfig.getInstance().getDeviceInfoBean()) { + LogUtils.i("DeviceInfoBean涓虹┖锛岃璁剧疆褰撳墠瀵硅薄"); + return; + } + BroadcastRequest request = new BroadcastRequest(IdUtils.getUUId(), time, HDLLinkConfig.getInstance().getDeviceInfoBean(), "200"); + HDLAuthSocket.getInstance().udpSendMsg(TopicConstant.BROADCAST, GsonConvert.getGson().toJson(request), true, new HDLLinkResponseCallBack() { + @Override + public void onSuccess(LinkResponse msg) { + LogUtils.i("骞挎挱淇℃伅缁欎富缃戝叧鎴愬姛锛�"); + } + @Override + public void onError(HDLLinkException e) { + LogUtils.i("骞挎挱淇℃伅缁欎富缃戝叧澶辫触锛�"); + } + }); + HDLAuthSocket.getInstance().udpSendMsg(TopicConstant.BROADCAST, GsonConvert.getGson().toJson(request), true); + HDLAuthSocket.getInstance().udpSendMsg(TopicConstant.BROADCAST, GsonConvert.getGson().toJson(request), true); + } catch (Exception e) { + LogUtils.e("骞挎挱璁惧鏈韩淇℃伅澶辫触锛屽け璐ヤ俊鎭細" + e.getMessage()); + } } - }); + }).start(); } - private static class SingletonInstance { - private static final HDLSocket INSTANCE = new HDLSocket(); - } +// private static class SingletonInstance { +// } + private static final HDLSocket instance = new HDLSocket(); public static HDLSocket getInstance() { - return SingletonInstance.INSTANCE; + return instance; } SocketOptions options; @@ -404,11 +419,33 @@ public SocketBoot getTcp() throws RuntimeException { if (TextUtils.isEmpty(getTcpIp())) { + LogUtils.e("璇锋悳绱㈢綉鍏�"); throw new RuntimeException("璇锋悳绱㈢綉鍏�"); } //濡傛灉娌℃湁鍒濆鍖栵紝鎴栬�呯綉鍏矷P鏇存敼浜嗭紝灏遍噸鏂板垵濮嬪寲 if (tcpBoot == null||!getTcpOptions().getIp().equals(getTcpIp())) { tcpBoot = TcpClient.init(getTcpIp(), getTcpPort(), getTcpOptions()); + tcpBoot.SetHeartbeat(new IHeartbeat() { + @Override + public void heartbeat() { + + if(HDLLinkConfig.getInstance().getDeviceInfoBean()==null||HDLLinkConfig.getInstance().getDeviceInfoBean().getOID()==null) { + LogUtils.i("DeviceInfoBean涓虹┖锛岄渶瑕佽缃墠鑳芥甯稿績璺�"); + return; + } + + String time = String.valueOf(System.currentTimeMillis()); + JsonObject jsonObject = new JsonObject(); + jsonObject.addProperty("id", IdUtils.getUUId()); + jsonObject.addProperty("time_stamp", time); + + String topic = String.format(TopicConstant.HEARTBEAT, HDLLinkConfig.getInstance().getDeviceInfoBean().getOID()); + + LinkRequest message = new LinkRequest(topic, + jsonObject.toString()); + sendMsg(message.getSendBytes(), null, null, null); + } + }); } return tcpBoot; @@ -570,46 +607,48 @@ public void sendMsg(byte[] data, String eventTag, HDLLinkCallBack callBack, SendListener sendListener) { try { - final AtomicInteger sendCount = new AtomicInteger(0); + if(eventTag!=null) { + final AtomicInteger sendCount = new AtomicInteger(0); - final ScheduledExecutorService threadPool = ThreadToolUtils.getInstance().newScheduledThreadPool(1); - final EventListener eventListener = new EventListener() { - @Override - public void onMessage(Object msg) { - if (msg instanceof LinkResponse) { - LogUtils.i("sendMsg onSuccess"); - threadPool.shutdownNow(); - LogUtils.i("sendMsg eventListener remove"); - EventDispatcher.getInstance().remove(eventTag, this); - if (callBack != null) { - callBack.onSuccess(msg.toString()); + final ScheduledExecutorService threadPool = ThreadToolUtils.getInstance().newScheduledThreadPool(1); + final EventListener eventListener = new EventListener() { + @Override + public void onMessage(Object msg) { + if (msg instanceof LinkResponse) { + LogUtils.i("sendMsg onSuccess"); + threadPool.shutdownNow(); + LogUtils.i("sendMsg eventListener remove"); + EventDispatcher.getInstance().remove(eventTag, this); + if (callBack != null) { + callBack.onSuccess(msg.toString()); + } } } - } - }; + }; - threadPool.scheduleWithFixedDelay(new Runnable() { - @Override - public void run() { - if (sendCount.get() < 3) { - sendCount.set(sendCount.get() + 1); - getTcp().sendMsg(data); - } else { - threadPool.shutdownNow(); - LogUtils.e("sendMsg eventListener remove"); - EventDispatcher.getInstance().remove(eventTag, eventListener); - ThreadToolUtils.getInstance().runOnUiThread(new Runnable() { - @Override - public void run() { - if (callBack != null) { - callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_SEND_ERROR)); + threadPool.scheduleWithFixedDelay(new Runnable() { + @Override + public void run() { + if (sendCount.get() < 3) { + sendCount.set(sendCount.get() + 1); + getTcp().sendMsg(data); + } else { + threadPool.shutdownNow(); + LogUtils.e("sendMsg eventListener remove"); + EventDispatcher.getInstance().remove(eventTag, eventListener); + ThreadToolUtils.getInstance().runOnUiThread(new Runnable() { + @Override + public void run() { + if (callBack != null) { + callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_SEND_ERROR)); + } } - } - }); + }); + } } - } - }, 1000, 500, TimeUnit.MILLISECONDS); - EventDispatcher.getInstance().register(eventTag, eventListener); + }, 1000, 500, TimeUnit.MILLISECONDS); + EventDispatcher.getInstance().register(eventTag, eventListener); + } //鍏堝彂閫佷竴娆� getTcp().sendMsg(data, new SendListener() { @Override -- Gitblit v1.8.0