From 37f8d15dd8954e04ad09445184c04a58773af17a Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期三, 14 六月 2023 09:13:37 +0800 Subject: [PATCH] 增加websocket报警点数量推送 --- ruoyi-common/src/main/java/com/ruoyi/common/websocket/service/ChatServerEndpoint.java | 12 +++++------- ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/AlarmTask.java | 26 ++++++++++++++++++-------- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/websocket/service/ChatServerEndpoint.java b/ruoyi-common/src/main/java/com/ruoyi/common/websocket/service/ChatServerEndpoint.java index 7ed66be..17c2f64 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/websocket/service/ChatServerEndpoint.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/websocket/service/ChatServerEndpoint.java @@ -23,12 +23,12 @@ @Component @Slf4j(topic = "websocket") -@ServerEndpoint("/websocket") +@ServerEndpoint("/websocket/{userId}") public class ChatServerEndpoint { @OnOpen - public void openSession( Session session) { - String userId = SecurityUtils.getUserId(); + public void openSession( @PathParam("userId")String userId, Session session) { + ONLINE_USER_SESSIONS.put(userId, session); String message = "鐢ㄦ埛[" + userId + "] 鎴愬姛杩炴帴锛�"; log.info("鐢ㄦ埛鐧诲綍锛�"+message); @@ -36,17 +36,15 @@ } @OnMessage - public void onMessage( String message) { + public void onMessage(@PathParam("userId")String userId, String message) { log.info("鏀跺埌娑堟伅锛�"+message); - String userId = SecurityUtils.getUserId(); Session session = ONLINE_USER_SESSIONS.get(userId); sendMessage(session,message); // sendMessageAll("鐢ㄦ埛[" + userid + "] : " + message); } @OnClose - public void onClose( Session session) { - String userId = SecurityUtils.getUserId(); + public void onClose( @PathParam("userId")String userId,Session session) { //褰撳墠鐨凷ession 绉婚櫎 ONLINE_USER_SESSIONS.remove(userId); //骞朵笖閫氱煡鍏朵粬浜哄綋鍓嶇敤鎴峰凡缁忕寮�鑱婂ぉ瀹や簡 diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/StealAlarmTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/AlarmTask.java similarity index 86% rename from ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/StealAlarmTask.java rename to ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/AlarmTask.java index 57f3a49..1b552c7 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/StealAlarmTask.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/AlarmTask.java @@ -1,5 +1,6 @@ package com.ruoyi.quartz.task; +import com.ruoyi.alarm.globalAlarm.service.IGlobalAlarmService; import com.ruoyi.alarm.stealAlarm.domain.ArdAlarmStealelec; import com.ruoyi.alarm.stealAlarm.service.IStealElecAlarmService; import com.ruoyi.common.core.domain.entity.SysUser; @@ -16,20 +17,22 @@ import static com.ruoyi.common.websocket.util.WebSocketUtils.ONLINE_USER_SESSIONS; /** - * @ClassName: stealAlarmTask + * @ClassName: AlarmTask * @Description: * @Author: Administrator * @Date: 2023骞�03鏈�06鏃� 11:13 * @Version: 1.0 **/ -@Component("StealAlarmTask") -@Slf4j(topic = "stealAlarm") -public class StealAlarmTask { +@Component("AlarmTask") +@Slf4j(topic = "AlarmTask") +public class AlarmTask { @Resource IStealElecAlarmService IStealElecAlarmService; @Resource ISysUserService sysUserService; + @Resource + IGlobalAlarmService globalAlarmService; /** * @鎻忚堪 鐩楃數鎶ヨ瀹炴椂鎺ㄩ�佷换鍔� @@ -39,12 +42,12 @@ * @鍒涘缓鏃堕棿 2023/3/6 15:10 * @淇敼浜哄拰鍏跺畠淇℃伅 */ - public void alarmPush() { + public void stealElecAlarmPush() { log.info("鐩楃數鎶ヨ鎺ㄩ�佸紑濮�"); // 寮�濮嬫椂闂� long stime = System.currentTimeMillis(); try { - for(String userId : ONLINE_USER_SESSIONS.keySet()) { + for (String userId : ONLINE_USER_SESSIONS.keySet()) { SysUser sysUser = sysUserService.selectUserById(userId); List<ArdAlarmStealelec> alarms = IStealElecAlarmService.getRealAlarm(sysUser.getDeptId()); Map<String, Object> map = new HashMap<>(); @@ -81,7 +84,7 @@ map.put("total", alarms.size()); map.put("data", alarms); if (alarms.size() > 0) { - WebSocketUtils.sendMessage(ONLINE_USER_SESSIONS.get(userId),map); + WebSocketUtils.sendMessage(ONLINE_USER_SESSIONS.get(userId), map); } } } catch (Exception ex) { @@ -101,7 +104,7 @@ * @鍒涘缓鏃堕棿 2023/2/28 11:51 * @淇敼浜哄拰鍏跺畠淇℃伅 */ - public void alarmPull() { + public void stealElecAlarmPull() { log.info("鐩楃數鏁版嵁鎷夊彇寮�濮�"); // 寮�濮嬫椂闂� long stime = System.currentTimeMillis(); @@ -116,4 +119,11 @@ // 璁$畻鎵ц鏃堕棿 log.info("鐩楃數鏁版嵁鎷夊彇缁撴潫锛�" + (etime - stime) + " 姣"); } + + public void globalAlarmCountPush() { + Map<String, Integer> stringIntegerMap = globalAlarmService.selectAlarmLogsCount(); + if (ONLINE_USER_SESSIONS.size() > 0) { + WebSocketUtils.sendMessageAll(stringIntegerMap); + } + } } -- Gitblit v1.9.3