From 7c8ce9b9a7d3fc1aaa4a621e86415b25ad10a34f Mon Sep 17 00:00:00 2001
From: panlili2024 <14743743+panlili2024@user.noreply.gitee.com>
Date: 星期三, 19 三月 2025 09:36:28 +0800
Subject: [PATCH] 添加source屏扫码流程
---
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HdlSocketHelper.java | 156 +++++++++++++++++++++++++++------------------------
1 files changed, 83 insertions(+), 73 deletions(-)
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HdlSocketHelper.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HdlSocketHelper.java
index ea53e38..58fd289 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HdlSocketHelper.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HdlSocketHelper.java
@@ -4,6 +4,7 @@
import com.hdl.sdk.common.event.EventDispatcher;
import com.hdl.sdk.common.event.EventListener;
+import com.hdl.sdk.common.utils.LogUtils;
import com.hdl.sdk.common.utils.ThreadToolUtils;
import com.hdl.sdk.connect.bean.LinkRequest;
import com.hdl.sdk.socket.SocketBoot;
@@ -29,7 +30,14 @@
private SocketBoot boot;
private UdpSocketBoot udpSocketBoot;
- private InetSocketAddress inetSocketAddress;
+ /**
+ * 鍙戦�佺殑鐩爣IP
+ */
+ private String ipAddress;
+ /**
+ * 鍙戦�佺殑鐩爣鍦板潃
+ */
+ private int port;
private final LinkRequest linkRequest;
private final EventListener eventListener;
@@ -41,43 +49,24 @@
private ScheduledExecutorService sendThread;
+ private String observeTopic;
+
public interface HdlSocketListener {
void onSucceed(Object msg);
void onFailure();
}
- private HdlSocketHelper(Long sendAwaitTime, int maxRetry, SocketBoot boot, LinkRequest linkRequest, String observeTopic, HdlSocketListener listener) {
- this.sendAwaitTime = sendAwaitTime;
- this.maxRetry = maxRetry;
- this.boot = boot;
- this.linkRequest = linkRequest;
- this.listener = listener;
- this.sendNumber = new AtomicInteger(0);
- eventListener = new EventListener() {
- @Override
- public void onMessage(Object msg) {
- isSend.set(true);
- if (listener != null) {
- listener.onSucceed(msg);
- }
- if (sendThread != null) {
- sendThread.shutdownNow();
- }
- EventDispatcher.getInstance().remove(eventListener);
- }
- };
- EventDispatcher.getInstance().register(observeTopic, eventListener);
- }
-
private HdlSocketHelper(Long sendAwaitTime, int maxRetry, UdpSocketBoot udpSocketBoot,
- InetSocketAddress inetSocketAddress, LinkRequest linkRequest, String observeTopic, HdlSocketListener listener) {
+ String ipAddress, int port, LinkRequest linkRequest, String observeTopic, HdlSocketListener listener) {
this.sendAwaitTime = sendAwaitTime;
this.maxRetry = maxRetry;
this.udpSocketBoot = udpSocketBoot;
- this.inetSocketAddress = inetSocketAddress;
+ this.ipAddress = ipAddress;
+ this.port = port;
this.linkRequest = linkRequest;
this.listener = listener;
+ this.observeTopic = observeTopic;
this.sendNumber = new AtomicInteger(0);
eventListener = new EventListener() {
@Override
@@ -89,64 +78,78 @@
if (sendThread != null) {
sendThread.shutdownNow();
}
- EventDispatcher.getInstance().remove(eventListener);
+ //绉婚櫎鐩戝惉
+ removeListener();
}
};
- EventDispatcher.getInstance().register(observeTopic, eventListener);
+ //娉ㄥ唽鐩戝惉
+ registerListener();
}
- public static void send(SocketBoot boot, LinkRequest linkRequest, String observeTopic, HdlSocketListener listener, Long sendAwaitTime, int maxRetry) {
- if (TextUtils.isEmpty(observeTopic)) {
- observeTopic = linkRequest.getTopic() + "_reply";
+
+ /**
+ * 娉ㄥ唽鐩戝惉
+ */
+ void registerListener() {
+ if (listener != null && !TextUtils.isEmpty(observeTopic)) {
+ EventDispatcher.getInstance().register(observeTopic, eventListener);
+// LogUtils.i("HdlSocketHelper", "register event");
}
- HdlSocketHelper socketHelper = new HdlSocketHelper(sendAwaitTime, maxRetry, boot, linkRequest, observeTopic, listener);
- socketHelper.send();
}
- public static void send(SocketBoot boot, LinkRequest linkRequest, String observeTopic, HdlSocketListener listener) {
- send(boot, linkRequest, observeTopic, listener, DEF_SEND_TIMEOUT, DEF_MAX_RETRY);
- }
-
-
- public static void send(SocketBoot boot, LinkRequest linkRequest, HdlSocketListener listener) {
- send(boot, linkRequest, "", listener, DEF_SEND_TIMEOUT, DEF_MAX_RETRY);
- }
-
- public static void sendOne(SocketBoot boot, LinkRequest linkRequest, HdlSocketListener listener) {
- send(boot, linkRequest, "", listener, DEF_SEND_TIMEOUT, DEF_SEND_ONE);
+ /**
+ * 绉婚櫎鐩戝惉
+ */
+ void removeListener() {
+ if (!TextUtils.isEmpty(observeTopic)) {
+ EventDispatcher.getInstance().remove(observeTopic, eventListener);
+// LogUtils.i("HdlSocketHelper", "remove event");
+ }
}
/**
* Udp鐨勫彂閫佹柟娉�
*
- * @param udpSocketBoot Udp褰撳墠瀵规帴
- * @param inetSocketAddress 鍙戦�佺殑鐩爣鍦板潃
- * @param linkRequest 鍙戦�佺殑鏁版嵁
- * @param observeTopic 鍙戦�佺殑涓婚
- * @param listener 鍥炶皟
+ * @param udpSocketBoot Udp褰撳墠瀵规帴
+ * @param ipAddress 鍙戦�佺殑鐩爣IP鍦板潃
+ * @param port 鐩殑绔彛
+ * @param linkRequest 鍙戦�佺殑鏁版嵁
+ * @param observeTopic 鍙戦�佺殑涓婚
+ * @param retry 閲嶅彂鏁版
+ * @param listener 鍥炶皟
*/
- public static void send(UdpSocketBoot udpSocketBoot, InetSocketAddress inetSocketAddress, LinkRequest linkRequest, String observeTopic, HdlSocketListener listener) {
+ public static void sendUdp(UdpSocketBoot udpSocketBoot, String ipAddress, int port, LinkRequest linkRequest, String observeTopic, int retry, HdlSocketListener listener) {
if (TextUtils.isEmpty(observeTopic)) {
observeTopic = linkRequest.getTopic() + "_reply";
}
- HdlSocketHelper socketHelper = new HdlSocketHelper(DEF_SEND_TIMEOUT, DEF_SEND_ONE, udpSocketBoot, inetSocketAddress, linkRequest, observeTopic, listener);
+ HdlSocketHelper socketHelper = new HdlSocketHelper(DEF_SEND_TIMEOUT, retry, udpSocketBoot, ipAddress, port, linkRequest, observeTopic, listener);
socketHelper.send();
}
/**
- * Udp鍙戦�佺殑鏂规硶
+ * Udp鐨勫彂閫佹柟娉�
*
- * @param udpSocketBoot 褰撳墠Udp瀵硅薄
- * @param inetSocketAddress 鍙戦�佺殑鐩爣鍦板潃
- * @param linkRequest 鍙戦�佺殑瀵硅薄
- * @param listener 鍥炶皟
+ * @param udpSocketBoot Udp褰撳墠瀵规帴
+ * @param ipAddress 鍙戦�佺殑鐩爣IP鍦板潃
+ * @param port 鐩殑绔彛
+ * @param linkRequest 鍙戦�佺殑鏁版嵁
+ * @param listener 鍥炶皟
*/
- public static void send(UdpSocketBoot udpSocketBoot, InetSocketAddress inetSocketAddress, LinkRequest linkRequest, HdlSocketListener listener) {
- String observeTopic = null;
- if (TextUtils.isEmpty(observeTopic)) {
- observeTopic = linkRequest.getTopic() + "_reply";
- }
- HdlSocketHelper socketHelper = new HdlSocketHelper(DEF_SEND_TIMEOUT, DEF_SEND_ONE, udpSocketBoot, inetSocketAddress, linkRequest, observeTopic, listener);
+ public static void sendUdp(UdpSocketBoot udpSocketBoot, String ipAddress, int port, LinkRequest linkRequest, HdlSocketListener listener) {
+ sendUdp(udpSocketBoot, ipAddress, port, linkRequest, "", DEF_MAX_RETRY, listener);
+ }
+
+
+ /**
+ * Udp鐨勫彂閫佹柟娉�
+ *
+ * @param udpSocketBoot Udp褰撳墠瀵规帴
+ * @param ipAddress 鍙戦�佺殑鐩爣IP鍦板潃
+ * @param port 鐩殑绔彛
+ * @param linkRequest 鍙戦�佺殑鏁版嵁
+ */
+ public static void sendUdpOne(UdpSocketBoot udpSocketBoot, String ipAddress, int port, LinkRequest linkRequest) {
+ HdlSocketHelper socketHelper = new HdlSocketHelper(DEF_SEND_TIMEOUT, DEF_SEND_ONE, udpSocketBoot, ipAddress, port, linkRequest, null, null);
socketHelper.send();
}
@@ -166,11 +169,11 @@
}
//濡傛灉鏄痷dp
if (null != udpSocketBoot) {
- udpSocketBoot.sendMsg(inetSocketAddress, linkRequest.getSendBytes());
+ udpSocketBoot.sendMsg(ipAddress, port, linkRequest.getSendBytes());
}
}
} catch (Exception e) {
- e.printStackTrace();
+ LogUtils.e("鍙戦�佹暟鎹け璐�:" + e.getMessage());
}
} else {
//瓒呭嚭閲嶅彂娆℃暟骞舵病鏈夋敹鍒板洖澶�
@@ -179,7 +182,9 @@
}
}
}
- }, sendAwaitTime, sendAwaitTime, TimeUnit.MILLISECONDS);
+ }, 0, sendAwaitTime, TimeUnit.MILLISECONDS);
+ //initialdelay - 棣栨鎵ц鐨勫欢杩熸椂闂� 0
+ //delay - 涓�娆℃墽琛岀粓姝㈠拰涓嬩竴娆℃墽琛屽紑濮嬩箣闂寸殑寤惰繜
}
/**
@@ -199,14 +204,19 @@
* 鍙戦�佸け璐�
*/
private void notifyFailure() {
- EventDispatcher.getInstance().remove(eventListener);
- if (sendThread != null) {
- sendThread.shutdownNow();
- sendThread = null;
- }
- if (listener != null) {
- listener.onFailure();
- listener = null;
+ //绉婚櫎鐩戝惉
+ removeListener();
+ try {
+ if (sendThread != null) {
+ sendThread.shutdownNow();
+ sendThread = null;
+ }
+ if (listener != null) {
+ listener.onFailure();
+ listener = null;
+ }
+ } catch (Exception e) {
+
}
}
}
--
Gitblit v1.8.0