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