From e6a8bdd23d6f5cb46ac650285829573280edcdf6 Mon Sep 17 00:00:00 2001
From: 554325746@qq.com <554325746@qq.com>
Date: 星期一, 15 七月 2019 16:51:11 +0800
Subject: [PATCH] a

---
 app/src/main/java/com/basic/security/fragment/HomeFragment.java |   35 ++++++++++++++++++++++++++---------
 1 files changed, 26 insertions(+), 9 deletions(-)

diff --git a/app/src/main/java/com/basic/security/fragment/HomeFragment.java b/app/src/main/java/com/basic/security/fragment/HomeFragment.java
index 3d30b51..dd63bec 100644
--- a/app/src/main/java/com/basic/security/fragment/HomeFragment.java
+++ b/app/src/main/java/com/basic/security/fragment/HomeFragment.java
@@ -22,6 +22,7 @@
 import org.androidannotations.annotations.UiThread;
 
 import java.lang.reflect.Method;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -47,6 +48,15 @@
 //            homeRestClient.setRootUrl("http://"+ipStr+":8000/data/api-v/realTime");
 //        }
     }
+    static List<SocketClient> socketClientList = new ArrayList<>();
+
+    public static void startNewSocketClient() {
+        System.out.println("鍚姩鏂拌繛鎺�");
+        SocketClient socketClient = new SocketClient(SettingManager.getIpStr(), SettingManager.getPort());
+        socketClient.start();
+        socketClientList.add(socketClient);
+        SystemClock.sleep(10*1000);
+    }
 
     @Background
     public void pullAlarmDataList() {
@@ -54,16 +64,23 @@
         refreshGridView();
         while (true) {
             try{
-                Map<String, String> requestBody = new HashMap<String, String>();
-                requestBody.put("sec", "15");
-                List<Map<String, String>> newRemoteAlarmList = null;
                 try {
-                    if (localServer) {
-                        newRemoteAlarmList = (List<Map<String, String>>)homeRestClient.list1();
-                    } else {
-                        SocketClient socketClient = new SocketClient(SettingManager.getIpStr(), SettingManager.getPort());
-                        socketClient.start();
+                    if (1!=1) {
+                        startNewSocketClient();
                         break;
+                    } else {
+                        List<SocketClient> socketClientListToRemove = new ArrayList<>();
+                        for (SocketClient socketClient1 : socketClientList) {
+                            if (System.currentTimeMillis() - socketClient1.lastUpdateTime > 1000*60*2) {
+//                                socketClient1.closeSocket();
+                                socketClient1.interrupt();
+                                socketClientListToRemove.add(socketClient1);
+                            }
+                        }
+                        socketClientList.removeAll(socketClientListToRemove);
+                        if (socketClientList.size() == 0) {
+                            startNewSocketClient();
+                        }
                     }
                 } catch (Exception e) {
                     System.out.println("pullAlarmDataList, " + e.getMessage());
@@ -71,7 +88,7 @@
             } catch (Exception e) {
                 e.printStackTrace();
             } finally {
-                SystemClock.sleep(8000);
+                SystemClock.sleep(3000);
             }
         }
     }

--
Gitblit v1.8.0