From 07a64e5395192525825525eb206b77112a2546b7 Mon Sep 17 00:00:00 2001 From: 15683799673 Date: Sat, 13 Sep 2025 16:47:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=A7=BB=E5=8A=A8=E7=AB=AF?= =?UTF-8?q?=E6=8E=A8=E9=80=81title=20content?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/RemoteWebSocketMessageService.java | 11 ++++++++++ .../impl/SisAlarmEventsServiceImpl.java | 4 +++- .../RemoteWebSocketMessageServiceImpl.java | 21 +++++++++++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/ruoyi-api/ruoyi-api-resource/src/main/java/org/dromara/resource/api/RemoteWebSocketMessageService.java b/ruoyi-api/ruoyi-api-resource/src/main/java/org/dromara/resource/api/RemoteWebSocketMessageService.java index eae81db3..e064a400 100644 --- a/ruoyi-api/ruoyi-api-resource/src/main/java/org/dromara/resource/api/RemoteWebSocketMessageService.java +++ b/ruoyi-api/ruoyi-api-resource/src/main/java/org/dromara/resource/api/RemoteWebSocketMessageService.java @@ -21,6 +21,17 @@ public interface RemoteWebSocketMessageService { */ void publishMessage(List sessionKey, WebSocketMsgType webSocketMsgType, String data); + /** + * 推送移动端消息 + * + * @param sessionKey session主键 一般为用户id + * @param webSocketMsgType webSocket消息类型 + * @param title 推送title + * @param content 推送内容 + * @param data 推送数据 + */ + void pushMobileMessage(List sessionKey, WebSocketMsgType webSocketMsgType, String title, String content, String data); + /** * 发布订阅的消息(群发) * diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAlarmEventsServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAlarmEventsServiceImpl.java index b03b1eeb..d7c1ff90 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAlarmEventsServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAlarmEventsServiceImpl.java @@ -310,7 +310,9 @@ public class SisAlarmEventsServiceImpl implements ISisAlarmEventsService { Boolean insert = alarmEventProcessService.insert(process); log.info("事件处理信息写入完成,result= {}", insert); // 进行消息推送 - webSocketMessageService.publishMessage(List.of(bo.getSolveId()), WebSocketMsgType.ALARM_MSG, JSONObject.toJSONString(sisAlarmEvents)); + String title = "视频预警"; + String content = "您有一条" + sisAlarmEvents.getSolveName() + "预警数据"; + webSocketMessageService.pushMobileMessage(List.of(bo.getSolveId()), WebSocketMsgType.ALARM_MSG, title, content, JSONObject.toJSONString(sisAlarmEvents)); return true; } diff --git a/ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/dubbo/RemoteWebSocketMessageServiceImpl.java b/ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/dubbo/RemoteWebSocketMessageServiceImpl.java index 0f84c97a..7002774a 100644 --- a/ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/dubbo/RemoteWebSocketMessageServiceImpl.java +++ b/ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/dubbo/RemoteWebSocketMessageServiceImpl.java @@ -33,6 +33,18 @@ public class RemoteWebSocketMessageServiceImpl implements RemoteWebSocketMessage } } + @Override + public void pushMobileMessage(List sessionKey, WebSocketMsgType webSocketMsgType, String title, String content, String data) { + WebSocketMessageDto dto = new WebSocketMessageDto(); + dto.setSessionKeys(sessionKey); + dto.setMessage(createMsg(webSocketMsgType, title, content, data)); + try { + WebSocketUtils.publishMessage(dto); + } catch (Exception e) { + log.error("发送分布式消息失败,error:{}", e.getMessage()); + } + } + @Override public void publishAll(WebSocketMsgType webSocketMsgType, String data) { try { @@ -60,4 +72,13 @@ public class RemoteWebSocketMessageServiceImpl implements RemoteWebSocketMessage return msg.toJSONString(); } + private String createMsg(WebSocketMsgType webSocketMsgType, String title, String content, Object data) { + JSONObject msg = new JSONObject(); + msg.put("type", webSocketMsgType.getCode()); + msg.put("title", title); + msg.put("content", content); + msg.put("data", data); + return msg.toJSONString(); + } + }