From 93f13e7b2e046c6d86d10e7abc2ecaa4c4adabc3 Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期二, 21 十二月 2021 11:47:38 +0800
Subject: [PATCH] 完善tcp

---
 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java |   59 ++++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 38 insertions(+), 21 deletions(-)

diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java
index ac97593..a0dd4ba 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java
@@ -178,30 +178,39 @@
         String requestStr = gs.toJson(request);
         LinkRequest message = new LinkRequest(topic, requestStr);
 
-        HdlSocketHelper.sendUdp(getUdpBoot(), ip, UDP_PORT, message,new HdlSocketHelper.HdlSocketListener() {
+        HdlSocketHelper.sendUdp(getUdpBoot(), ip, UDP_PORT, message, new HdlSocketHelper.HdlSocketListener() {
             @Override
             public void onSucceed(Object msg) {
                 if (callBack == null) return;
                 try {
                     AuthenticateResponse bean = getAuthenticateResponseBean(msg);
                     if (bean != null) {
-                        String localSecret = "";
-                        String gatewayId = "";
-                        String ipAddress = "";
-                        if (bean.getAuth() != null) {
-                            localSecret = bean.getAuth().getLocalSecret();
-                        }
-                        if (bean.getObjects() != null) {
-                            gatewayId = bean.getObjects().getGatewayID();
-                            ipAddress = bean.getObjects().getIPAddress();
-                        }
-                        //鍒ゆ柇缃戝叧鏄惁宸茬粡娉ㄥ唽鍒颁簯绔�
-                        if (TextUtils.isEmpty(localSecret) || TextUtils.isEmpty(gatewayId)) {
-                            //璁よ瘉澶辫触锛岀綉鍏虫湭娉ㄥ唽鍒颁簯绔�
-                            callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_AUTH_ERROR_GATEWAY_NOT_REGISTERED));
-                        } else {
-                            HDLLinkConfig.getInstance().saveConfig(localSecret, gatewayId, ipAddress);
-                            callBack.onSuccess("璁よ瘉鎴愬姛");
+                        if (bean.getCode().equals("200")) {
+                            String localSecret = "";
+                            String gatewayId = "";
+                            String ipAddress = "";
+                            if (bean.getAuth() != null) {
+                                localSecret = bean.getAuth().getLocalSecret();
+                            }
+                            if (bean.getObjects() != null) {
+                                gatewayId = bean.getObjects().getGatewayID();
+                                ipAddress = bean.getObjects().getIPAddress();
+                            }
+                            //鍒ゆ柇缃戝叧鏄惁宸茬粡娉ㄥ唽鍒颁簯绔�
+                            if (TextUtils.isEmpty(localSecret) || TextUtils.isEmpty(gatewayId)) {
+                                //璁よ瘉澶辫触锛岀綉鍏虫湭娉ㄥ唽鍒颁簯绔�
+                                callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_AUTH_ERROR_GATEWAY_NOT_REGISTERED));
+                            } else {
+                                HDLLinkConfig.getInstance().saveConfig(localSecret, gatewayId, ipAddress);
+                                callBack.onSuccess("璁よ瘉鎴愬姛");
+                            }
+                        } else if (bean.getCode().equals("14013")){
+                            //璁よ瘉澶辫触锛岃MAC瀵瑰簲鐨勮澶囧瘑閽ヤ笉瀛樺湪
+                            callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_AUTH_MAC_KEY_ERROR_));
+                        } else{
+                            //璁よ瘉澶辫触锛岄敊璇爜锛�
+                            LogUtils.e("璁よ瘉澶辫触锛岄敊璇爜锛�" + bean.getCode());
+                            callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_AUTH_ERROR));
                         }
                     } else {
                         callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_DATA_ERROR));
@@ -350,9 +359,10 @@
      *
      * @param topic    鍙戦�佹暟鎹�
      * @param bodyStr  鍥炲鐨勪富棰�
+     * @param broadcast 鏄惁瑕佸箍鎾�
      * @param callBack 鍥炶皟
      */
-    public void udpSendMsg(String topic, String bodyStr, HDLLinkResponseCallBack callBack) {
+    public void udpSendMsg(String topic, String bodyStr,boolean broadcast,  HDLLinkResponseCallBack callBack) {
         if (TextUtils.isEmpty(topic) || TextUtils.isEmpty(bodyStr)) {
             if (callBack != null) {
                 callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_DATA_NULL_ERROR));
@@ -369,6 +379,9 @@
 
         LinkRequest message = new LinkRequest(topic, bodyStr);
         String ip = HDLLinkConfig.getInstance().getIpAddress();
+        if(broadcast) {
+            ip = IpUtils.getBroadcastAddress();
+        }
         HdlSocketHelper.sendUdp(getUdpBoot(), ip, UDP_PORT, message, new HdlSocketHelper.HdlSocketListener() {
                     @Override
                     public void onSucceed(Object msg) {
@@ -390,8 +403,9 @@
      *
      * @param topic   鍙戦�佹暟鎹�
      * @param bodyStr 鍥炲鐨勪富棰�
+     * @param broadcast 鏄惁骞挎挱
      */
-    public void udpSendMsg(String topic, String bodyStr) {
+    public void udpSendMsg(String topic, String bodyStr,boolean broadcast) {
         if (TextUtils.isEmpty(topic) || TextUtils.isEmpty(bodyStr)) {
             LogUtils.e("udpSendMsg", "鍙傛暟涓嶈兘涓虹┖");
             return;
@@ -401,7 +415,10 @@
             return;
         }
         LinkRequest message = new LinkRequest(topic, bodyStr);
-        String ip = HDLLinkConfig.getInstance().getIpAddress();// IpUtils.getBroadcastAddress();
+        String ip = HDLLinkConfig.getInstance().getIpAddress();
+        if(broadcast) {
+            ip = IpUtils.getBroadcastAddress();
+        }
         HdlSocketHelper.sendUdpOne(getUdpBoot(), ip, UDP_PORT, message);
     }
 

--
Gitblit v1.8.0