From 845bb16392e6b47ec31147d0e7c6ddc39537f2e7 Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期三, 16 二月 2022 13:05:21 +0800
Subject: [PATCH] 解密有问题后不往上层发
---
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java | 64 ++++++++++++++++++++++----------
1 files changed, 44 insertions(+), 20 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 8489b60..dedba8a 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,42 +1,37 @@
package com.hdl.sdk.connect.socket;
import android.text.TextUtils;
+import android.util.Log;
import com.google.gson.JsonObject;
-import com.google.gson.reflect.TypeToken;
import com.hdl.sdk.common.config.TopicConstant;
import com.hdl.sdk.common.event.EventDispatcher;
import com.hdl.sdk.common.event.EventListener;
import com.hdl.sdk.common.exception.HDLLinkCode;
import com.hdl.sdk.common.exception.HDLLinkException;
import com.hdl.sdk.common.utils.IdUtils;
-import com.hdl.sdk.common.utils.IpUtils;
import com.hdl.sdk.common.utils.LogUtils;
-import com.hdl.sdk.common.utils.SPUtils;
import com.hdl.sdk.common.utils.ThreadToolUtils;
import com.hdl.sdk.common.utils.gson.GsonConvert;
+import com.hdl.sdk.connect.bean.request.BroadcastRequest;
import com.hdl.sdk.connect.bean.response.BaseLocalResponse;
import com.hdl.sdk.connect.bean.request.DeviceControlRequest;
import com.hdl.sdk.connect.bean.request.FunctionAttributeRequest;
-import com.hdl.sdk.connect.bean.response.GatewaySearchBean;
import com.hdl.sdk.connect.bean.LinkRequest;
import com.hdl.sdk.connect.bean.LinkResponse;
import com.hdl.sdk.connect.bean.request.PropertyReadRequest;
-import com.hdl.sdk.connect.bean.request.PropertyUpRequest;
-import com.hdl.sdk.connect.callback.BaseCallBack;
import com.hdl.sdk.connect.callback.HDLLinkCallBack;
+import com.hdl.sdk.connect.callback.HDLLinkResponseCallBack;
import com.hdl.sdk.connect.config.HDLLinkConfig;
import com.hdl.sdk.connect.protocol.LinkMessageDecoder;
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.TcpClient;
-import com.hdl.sdk.socket.client.UdpClient;
import com.hdl.sdk.socket.codec.MessagePipeLine;
import com.hdl.sdk.socket.listener.ConnectStatusListener;
import com.hdl.sdk.socket.listener.SendListener;
-import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ScheduledExecutorService;
@@ -63,7 +58,7 @@
statusListener = new ConnectStatusListener() {
@Override
public void onConnecting() {
-
+ broadcastRequest();
}
@Override
@@ -78,6 +73,31 @@
};
}
+ /**
+ * 骞挎挱鑷韩淇℃伅缁欎富缃戝叧
+ */
+ 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(TopicConstant.BROADCAST, GsonConvert.getGson().toJson(request),true);
+ 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) {
+
+ }
+ });
+ HDLAuthSocket.getInstance().udpSendMsg(TopicConstant.BROADCAST, GsonConvert.getGson().toJson(request),true);
+ }
+
private static class SingletonInstance {
private static final HDLSocket INSTANCE = new HDLSocket();
}
@@ -86,17 +106,17 @@
return SingletonInstance.INSTANCE;
}
-
+ SocketOptions options;
private SocketOptions getTcpOptions() {
- final SocketOptions options = new SocketOptions();
+ if(null!=options){
+ return options;
+ }
+ options = new SocketOptions();
final MessagePipeLine pipeLine = new MessagePipeLine();
pipeLine.add(new LinkMessageDecoder());
pipeLine.add(new LinkMessageEncoder());
options.setHandleMessage(pipeLine);
- options.setEnabledHeartbeat(false);//鏄惁寮�鍚績璺冲寘鍙戦�佹娴�
-// options.setHeartbeatTimeInterval(10*1000L);
-// options.setHeartbeatData("TCP");
-// options.setEnabledHeartbeat(true);//鏄惁寮�鍚績璺冲寘鍙戦�佹娴�
+ options.addConnectStatusListener(statusListener);
return options;
}
@@ -387,11 +407,14 @@
public SocketBoot getTcp() throws RuntimeException {
if (TextUtils.isEmpty(getTcpIp())) {
+ LogUtils.e("璇锋悳绱㈢綉鍏�");
throw new RuntimeException("璇锋悳绱㈢綉鍏�");
}
- if (tcpBoot == null) {
+ //濡傛灉娌℃湁鍒濆鍖栵紝鎴栬�呯綉鍏矷P鏇存敼浜嗭紝灏遍噸鏂板垵濮嬪寲
+ if (tcpBoot == null||!getTcpOptions().getIp().equals(getTcpIp())) {
tcpBoot = TcpClient.init(getTcpIp(), getTcpPort(), getTcpOptions());
}
+
return tcpBoot;
}
@@ -558,14 +581,14 @@
@Override
public void onMessage(Object msg) {
if (msg instanceof LinkResponse) {
- LogUtils.e("sendMsg onSuccess");
+ LogUtils.i("sendMsg onSuccess");
+ threadPool.shutdownNow();
+ LogUtils.i("sendMsg eventListener remove");
+ EventDispatcher.getInstance().remove(eventTag, this);
if (callBack != null) {
callBack.onSuccess(msg.toString());
}
- threadPool.shutdownNow();
}
- LogUtils.e("sendMsg eventListener remove");
- EventDispatcher.getInstance().remove(eventTag, this);
}
};
@@ -591,6 +614,7 @@
}
}, 1000, 500, TimeUnit.MILLISECONDS);
EventDispatcher.getInstance().register(eventTag, eventListener);
+ //鍏堝彂閫佷竴娆�
getTcp().sendMsg(data, new SendListener() {
@Override
public void onSucceed() {
--
Gitblit v1.8.0