From 43e38e768360ac8ced4f31fb4a423f2badda5587 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期一, 13 十二月 2021 15:49:05 +0800
Subject: [PATCH] 2021-12-13 1.优化udp发送

---
 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java |  192 ++++++-----------------------------------------
 1 files changed, 27 insertions(+), 165 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 8e1c7d8..b03d0fe 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
@@ -50,40 +50,14 @@
  */
 public class HDLSocket {
 
-//    public interface CallBack extends BaseCallBack {
-//        void onResponse(String data);
-//    }
-//
-//    /**
-//     * udp榛樿缁勬挱ip
-//     */
-//    private static final String UDP_GROUP_IP = "239.0.168.188";
-
-    /**
-     * udp榛樿绔彛
-     */
-    private static final int UDP_PORT = 8585;
-
     /**
      * tcp榛樿绔彛
      */
     private static final int TCP_PORT = 8586;
 
-    //    private String tcpIp;
-//    private int tcpPort;
-
-//    private int udpPort;
-//    private String udpIp;
-
-//    private static SocketBoot updBoot;
     private SocketBoot tcpBoot;
 
     private ConnectStatusListener statusListener;
-
-//    private EventListener searchEvent;
-//    private CallBack searchCallBack;
-//    private ScheduledExecutorService searchGatewayThread;
-//    private final AtomicInteger searchCount = new AtomicInteger(0);
 
     private HDLSocket() {
         statusListener = new ConnectStatusListener() {
@@ -102,43 +76,6 @@
 
             }
         };
-//        searchEvent = new EventListener() {
-//            @Override
-//            public void onMessage(Object msg) {
-//                try {
-//                    if (msg instanceof LinkResponse) {
-//                        LinkResponse linkResponse = (LinkResponse) msg;
-//                        String data = linkResponse.getData();
-//                        if (!TextUtils.isEmpty(data)) {
-//                            final BaseLocalResponse<GatewaySearchBean> response = GsonConvert.getGson().fromJson(data, new TypeToken<BaseLocalResponse<GatewaySearchBean>>() {
-//                            }.getType());
-//                            GatewaySearchBean searchBean = response.getObjects();
-//                            if (searchBean != null) {
-////                                gatewayId = searchBean.getGatewayId();
-////                                if (!TextUtils.isEmpty(gatewayId)) {
-////                                    SPUtils.put(GATEWAY_KEY, gatewayId);
-////                                }
-////                                tcpIp = searchBean.getIp_address();
-////                                if (!TextUtils.isEmpty(tcpIp)) {
-////                                    SPUtils.put(TCP_IP_KEY, tcpIp);
-////                                }
-//                            }
-//
-//                            if (searchCallBack != null) {
-//                                searchCallBack.onResponse(linkResponse.toString());
-//                            }
-//                        }
-//
-//                    }
-//                } catch (Exception e) {
-//                    if (searchCallBack != null) {
-//                        searchCallBack.onError("瑙f瀽澶辫触");
-//                    }
-//                }
-//
-//
-//            }
-//        };
     }
 
     private static class SingletonInstance {
@@ -150,29 +87,19 @@
     }
 
 
-//    private SocketOptions getUdpOptions() {
-//        final SocketOptions options = new SocketOptions();
-//        final MessagePipeLine pipeLine = new MessagePipeLine();
-//        pipeLine.add(new LinkMessageDecoder());
-//        pipeLine.add(new LinkMessageEncoder());
-//        options.setHandleMessage(pipeLine);
-//        options.setEnabledHeartbeat(false);
-//        return options;
-//    }
-
     private SocketOptions getTcpOptions() {
         final SocketOptions options = new SocketOptions();
         final MessagePipeLine pipeLine = new MessagePipeLine();
         pipeLine.add(new LinkMessageDecoder());
         pipeLine.add(new LinkMessageEncoder());
         options.setHandleMessage(pipeLine);
-        options.setEnabledHeartbeat(false);
+        options.setEnabledHeartbeat(false);//鏄惁寮�鍚績璺冲寘鍙戦�佹娴�
+//        options.setHeartbeatTimeInterval(10*1000L);
+//        options.setHeartbeatData("TCP");
+//        options.setEnabledHeartbeat(true);//鏄惁寮�鍚績璺冲寘鍙戦�佹娴�
         return options;
     }
 
-    private int getUdpPort() {
-        return UDP_PORT;
-    }
 
     public int getTcpPort() {
         return TCP_PORT;
@@ -185,90 +112,6 @@
     public String getGatewayId() {
         return HDLLinkConfig.getInstance().getGatewayId();
     }
-
-
-//    private String getUdpIp() {
-//        if (TextUtils.isEmpty(udpIp)) {
-//            udpIp = UDP_GROUP_IP;
-//        }
-//        return udpIp;
-//    }
-
-//    public void searchGateway() {
-//        searchGateway(null);
-//    }
-//
-//    /**
-//     * 缁勬挱鎼滅储
-//     */
-//    public void searchGateway(CallBack callBack) {
-////        gatewayId = "";//閲嶇疆缃戝叧ID
-////        this.searchCallBack = callBack;
-////
-////        if (searchGatewayThread != null) {
-////            searchGatewayThread.shutdownNow();
-////        }
-////
-////
-////        new Thread(new Runnable() {
-////            @Override
-////            public void run() {
-////                while (TextUtils.isEmpty(gatewayId)) {
-////                    //鎼滅储缃戝叧
-////                    searchGateway(IdUtils.getUUId(), searchEvent);
-////                    try {
-////                        Thread.sleep(1000L);
-////                    } catch (InterruptedException e) {
-////                        e.printStackTrace();
-////                    }
-////                }
-////            }
-////        }).start();
-//    }
-//
-//
-//    /**
-//     * 閫氳繃缁勬挱鎼滅储缃戝叧
-//     */
-//    public void searchGateway(String msgId, EventListener eventListener) {
-//        searchGateway(getUdpIp(), getUdpPort(), msgId, eventListener);
-//    }
-//
-//    /**
-//     * 閫氳繃骞挎挱鎼滅储缃戝叧
-//     */
-//    public void searchGatewayByBroadcast(String msgId, EventListener eventListener) {
-//        searchGateway(IpUtils.getBroadcastAddress(), getUdpPort(), msgId, eventListener);
-//    }
-//
-//    /**
-//     * 榛樿鏄粍鎾悳绱㈢綉鍏�
-//     */
-//    public void searchGateway(String ip, int port, String msgId, EventListener eventListener) {
-//
-//        if (updBoot == null) {
-//            updBoot = UdpClient.init(ip, port, getUdpOptions());
-//            updBoot.connect();
-//        }
-//
-//
-//        String time = String.valueOf(System.currentTimeMillis());
-//        JsonObject jsonObject = new JsonObject();
-//        jsonObject.addProperty("id", msgId);
-//        jsonObject.addProperty("time_stamp", time);
-//
-//        EventDispatcher.getInstance().registerIo(TopicConstant.GATEWAY_SEARCH_REPLY, eventListener);
-//        LinkRequest message = new LinkRequest(TopicConstant.GATEWAY_SEARCH,
-//                jsonObject.toString());
-//
-//        try {
-//            updBoot.sendMsg(message.getSendBytes());
-//        } catch (UnsupportedEncodingException e) {
-//            e.printStackTrace();
-//        }
-//
-//    }
-
 
     /**
      * 鑾峰彇璁惧鍒楄〃
@@ -682,6 +525,24 @@
         }
     }
 
+    /**
+     * 閫氱敤TCP鍙戦�佹寚浠� 鍙彂涓�娆★紝涓嶇洃鍚洖澶嶏紝涓嶉噸鍙�
+     *
+     * @param topic    鍙戦�佹暟鎹�
+     * @param bodyStr  鍥炲鐨勪富棰�
+     */
+    public void tcpSendMsg(String topic, String bodyStr) {
+        try {
+            if (TextUtils.isEmpty(topic) || TextUtils.isEmpty(bodyStr)) {
+                LogUtils.e("udpSendMsg", "鍙傛暟涓嶈兘涓虹┖");
+                return;
+            }
+            LinkRequest message = new LinkRequest(topic, bodyStr);
+            getTcp().sendMsg(message.getSendBytes());
+        } catch (Exception e) {
+            LogUtils.e("tcpSendMsg", "鍙戦�佸け璐� :"+e.getMessage());
+        }
+    }
 
     /**
      * 鍙戦�佹寚浠�
@@ -697,14 +558,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);
                 }
             };
 
@@ -730,6 +591,7 @@
                 }
             }, 1000, 500, TimeUnit.MILLISECONDS);
             EventDispatcher.getInstance().register(eventTag, eventListener);
+            //鍏堝彂閫佷竴娆�
             getTcp().sendMsg(data, new SendListener() {
                 @Override
                 public void onSucceed() {

--
Gitblit v1.8.0