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