From 6ece8bc329dd681ebf9748bc843895d6941cd9ed Mon Sep 17 00:00:00 2001
From: whyclxw <810412026@qq.com>
Date: 星期四, 16 一月 2025 14:50:21 +0800
Subject: [PATCH] 首页推送

---
 src/main/java/com/whyc/webSocket/HomeSocket.java |  105 +++++++++++++++++++++++++++-------------------------
 1 files changed, 55 insertions(+), 50 deletions(-)

diff --git a/src/main/java/com/whyc/webSocket/HomeSocket.java b/src/main/java/com/whyc/webSocket/HomeSocket.java
index fa098aa..1698ca7 100644
--- a/src/main/java/com/whyc/webSocket/HomeSocket.java
+++ b/src/main/java/com/whyc/webSocket/HomeSocket.java
@@ -34,12 +34,7 @@
 
     private Thread thread;
 
-    private HttpSession httpSession;
-
-
     private static AreaInfService ainfService;
-
-
 
     @Autowired
     public void setAreaInfServicee(AreaInfService ainfService) {
@@ -50,55 +45,23 @@
     @OnOpen
     public void onOpen(Session session, EndpointConfig config) {
         this.session = session;
-        this.httpSession = (HttpSession) config.getUserProperties().get("httpSession");
-    }
-
-    @OnMessage
-    public void onMessage(Session session, String message){
-        UserInf user = (UserInf) this.httpSession.getAttribute("user");
-        final int userId = user.getUid();
-        final int urole = user.getUrole();
-        Thread thread = new Thread() {
+        //HttpSession httpSession = (HttpSession) config.getUserProperties().get("httpSession");
+        //UserInf user = (UserInf) httpSession.getAttribute("user");
+        //final int userId = user.getUid();
+        //final int urole = user.getUrole();
+        final int userId = 10001;
+        final int urole = 1;
+        Thread thread = new Thread("Thread_HomeSocket") {
             @Override
             public void run() {
                 try {
-                    Map<String, Object> res = new HashMap<>();
+
                     while (!currentThread().isInterrupted()) {
-                        ThreadPoolExecutor poolExecutor = ThreadPoolExecutorFactory.getPoolExecutor();
-                        CountDownLatch latch = new CountDownLatch(5);
-                        poolExecutor.execute(() -> {
-                            //閿佺殑宸ヤ綔鐘舵��
-                            Response resLockState = ainfService.getLockState(userId,urole);
-                            res.put("resLockState", resLockState);
-                            latch.countDown();
-                        });
-                        poolExecutor.execute(() -> {
-                            //灞忔煖绫诲瀷
-                            Response resScreenBox = ainfService.getScreenBoxType(userId,urole);
-                            res.put("resScreenBox", resScreenBox);
-                            latch.countDown();
-                        });
-                        poolExecutor.execute(() -> {
-                            //lock鐨勪娇鐢ㄩ娆�
-                            Response resReport = ainfService.getReport(userId,urole);
-                            res.put("resReport", resReport);
-                            latch.countDown();
-                        });
-                        poolExecutor.execute(() -> {
-                            //瀹炴椂寮�閿佷俊鎭�(澶辫触)
-                            Response resErrorCtlLog =  ainfService.getErrorCtlog(userId,urole);
-                            res.put("resErrorCtlLog", resErrorCtlLog);
-                            latch.countDown();
-                        });
-                        poolExecutor.execute(() -> {
-                            //瀹炴椂寮�閿佷俊鎭�(鍏ㄩ儴)
-                            Response resAllCtlLog = ainfService.getAllCtlLog(userId,urole);
-                            res.put("resAllCtlLog", resAllCtlLog);
-                            latch.countDown();
-                        });
-                        latch.await(10, TimeUnit.MINUTES);
-                        session.getBasicRemote().sendObject(res);
-                        sleep(5000);
+                        while (!currentThread().isInterrupted()) {
+                            Map<String, Object> res = sendHome(userId,urole);
+                            session.getBasicRemote().sendObject(new Response().set(1, res));
+                            sleep(5000);
+                        }
                     }
                 } catch (Exception e) {
                     this.interrupt();
@@ -108,6 +71,48 @@
         thread.start();
         this.thread = thread;
     }
+    //鎺ㄩ�佹暟鎹�
+    public Map<String, Object> sendHome(int userId,int urole) {
+        Map<String, Object> res = new HashMap<>();
+        try {
+            ThreadPoolExecutor poolExecutor = ThreadPoolExecutorFactory.getPoolExecutor();
+            CountDownLatch latch = new CountDownLatch(5);
+            poolExecutor.execute(() -> {
+                //閿佺殑宸ヤ綔鐘舵��
+                Response resLockState = ainfService.getLockState(userId,urole);
+                res.put("resLockState", resLockState);
+                latch.countDown();
+            });
+            poolExecutor.execute(() -> {
+                //灞忔煖绫诲瀷
+                Response resScreenBox = ainfService.getScreenBoxType(userId,urole);
+                res.put("resScreenBox", resScreenBox);
+                latch.countDown();
+            });
+            poolExecutor.execute(() -> {
+                //lock鐨勪娇鐢ㄩ娆�
+                Response resReport = ainfService.getReport(userId,urole);
+                res.put("resReport", resReport);
+                latch.countDown();
+            });
+            poolExecutor.execute(() -> {
+                //瀹炴椂寮�閿佷俊鎭�(澶辫触)
+                Response resErrorCtlLog =  ainfService.getErrorCtlog(userId,urole);
+                res.put("resErrorCtlLog", resErrorCtlLog);
+                latch.countDown();
+            });
+            poolExecutor.execute(() -> {
+                //瀹炴椂寮�閿佷俊鎭�(鍏ㄩ儴)
+                Response resAllCtlLog = ainfService.getAllCtlLog(userId,urole);
+                res.put("resAllCtlLog", resAllCtlLog);
+                latch.countDown();
+            });
+            latch.await(4, TimeUnit.MINUTES);
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+        return res;
+    }
 
     @OnClose
     public void onClose(CloseReason closeReason) throws IOException {

--
Gitblit v1.9.1