From e5e8e3ce7c23e161e9281be5588f04d613cb5191 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期四, 12 九月 2024 16:58:47 +0800
Subject: [PATCH] update 优化 租户状态更改接口严谨性
---
ruoyi-common/ruoyi-common-websocket/src/main/java/org/dromara/common/websocket/utils/WebSocketUtils.java | 42 ++++++++++++++++++++++++++++--------------
1 files changed, 28 insertions(+), 14 deletions(-)
diff --git a/ruoyi-common/ruoyi-common-websocket/src/main/java/org/dromara/common/websocket/utils/WebSocketUtils.java b/ruoyi-common/ruoyi-common-websocket/src/main/java/org/dromara/common/websocket/utils/WebSocketUtils.java
index 5c45532..8c4170a 100644
--- a/ruoyi-common/ruoyi-common-websocket/src/main/java/org/dromara/common/websocket/utils/WebSocketUtils.java
+++ b/ruoyi-common/ruoyi-common-websocket/src/main/java/org/dromara/common/websocket/utils/WebSocketUtils.java
@@ -29,10 +29,10 @@
public class WebSocketUtils {
/**
- * 鍙戦�佹秷鎭�
+ * 鍚戞寚瀹氱殑WebSocket浼氳瘽鍙戦�佹秷鎭�
*
- * @param sessionKey session涓婚敭 涓�鑸负鐢ㄦ埛id
- * @param message 娑堟伅鏂囨湰
+ * @param sessionKey 瑕佸彂閫佹秷鎭殑鐢ㄦ埛id
+ * @param message 瑕佸彂閫佺殑娑堟伅鍐呭
*/
public static void sendMessage(Long sessionKey, String message) {
WebSocketSession session = WebSocketSessionHolder.getSessions(sessionKey);
@@ -40,18 +40,18 @@
}
/**
- * 璁㈤槄娑堟伅
+ * 璁㈤槄WebSocket娑堟伅涓婚锛屽苟鎻愪緵涓�涓秷璐硅�呭嚱鏁版潵澶勭悊鎺ユ敹鍒扮殑娑堟伅
*
- * @param consumer 鑷畾涔夊鐞�
+ * @param consumer 澶勭悊WebSocket娑堟伅鐨勬秷璐硅�呭嚱鏁�
*/
public static void subscribeMessage(Consumer<WebSocketMessageDto> consumer) {
RedisUtils.subscribe(WEB_SOCKET_TOPIC, WebSocketMessageDto.class, consumer);
}
/**
- * 鍙戝竷璁㈤槄鐨勬秷鎭�
+ * 鍙戝竷WebSocket璁㈤槄娑堟伅
*
- * @param webSocketMessage 娑堟伅瀵硅薄
+ * @param webSocketMessage 瑕佸彂甯冪殑WebSocket娑堟伅瀵硅薄
*/
public static void publishMessage(WebSocketMessageDto webSocketMessage) {
List<Long> unsentSessionKeys = new ArrayList<>();
@@ -76,14 +76,11 @@
}
/**
- * 鍙戝竷璁㈤槄鐨勬秷鎭�(缇ゅ彂)
+ * 鍚戞墍鏈夌殑WebSocket浼氳瘽鍙戝竷璁㈤槄鐨勬秷鎭�(缇ゅ彂)
*
- * @param message 娑堟伅鍐呭
+ * @param message 瑕佸彂甯冪殑娑堟伅鍐呭
*/
public static void publishAll(String message) {
- WebSocketSessionHolder.getSessionsAll().forEach(key -> {
- WebSocketUtils.sendMessage(key, message);
- });
WebSocketMessageDto broadcastMessage = new WebSocketMessageDto();
broadcastMessage.setMessage(message);
RedisUtils.publish(WEB_SOCKET_TOPIC, broadcastMessage, consumer -> {
@@ -91,17 +88,34 @@
});
}
+ /**
+ * 鍚戞寚瀹氱殑WebSocket浼氳瘽鍙戦�丳ong娑堟伅
+ *
+ * @param session 瑕佸彂閫丳ong娑堟伅鐨刉ebSocket浼氳瘽
+ */
public static void sendPongMessage(WebSocketSession session) {
sendMessage(session, new PongMessage());
}
+ /**
+ * 鍚戞寚瀹氱殑WebSocket浼氳瘽鍙戦�佹枃鏈秷鎭�
+ *
+ * @param session WebSocket浼氳瘽
+ * @param message 瑕佸彂閫佺殑鏂囨湰娑堟伅鍐呭
+ */
public static void sendMessage(WebSocketSession session, String message) {
sendMessage(session, new TextMessage(message));
}
- private static void sendMessage(WebSocketSession session, WebSocketMessage<?> message) {
+ /**
+ * 鍚戞寚瀹氱殑WebSocket浼氳瘽鍙戦�乄ebSocket娑堟伅瀵硅薄
+ *
+ * @param session WebSocket浼氳瘽
+ * @param message 瑕佸彂閫佺殑WebSocket娑堟伅瀵硅薄
+ */
+ private synchronized static void sendMessage(WebSocketSession session, WebSocketMessage<?> message) {
if (session == null || !session.isOpen()) {
- log.error("[send] session浼氳瘽宸茬粡鍏抽棴");
+ log.warn("[send] session浼氳瘽宸茬粡鍏抽棴");
} else {
try {
session.sendMessage(message);
--
Gitblit v1.9.3