Преглед на файлове

update 优化 websocket 服务不存在异常逻辑处理

疯狂的狮子Li преди 2 години
родител
ревизия
f6252a80cd

+ 38 - 0
ruoyi-api/ruoyi-api-resource/src/main/java/org/dromara/resource/api/RemoteMessageServiceStub.java

@@ -0,0 +1,38 @@
+package org.dromara.resource.api;
+
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 消息服务
+ *
+ * @author Lion Li
+ */
+@Slf4j
+@RequiredArgsConstructor
+public class RemoteMessageServiceStub implements RemoteMessageService {
+
+    private final RemoteMessageService remoteMessageService;
+
+    /**
+     * 发送消息
+     *
+     * @param sessionKey session主键 一般为用户id
+     * @param message    消息文本
+     */
+    public void sendMessage(Long sessionKey, String message) {
+        try {
+            remoteMessageService.sendMessage(sessionKey, message);
+        } catch (Exception e) {
+            log.warn("websocket 功能未开启或服务未找到");
+        }
+    }
+
+    public void publishAll(String message) {
+        try {
+            remoteMessageService.publishAll(message);
+        } catch (Exception e) {
+            log.warn("websocket 功能未开启或服务未找到");
+        }
+    }
+}

+ 2 - 5
ruoyi-auth/src/main/java/org/dromara/auth/controller/TokenController.java

@@ -65,7 +65,7 @@ public class TokenController {
     private final RemoteClientService remoteClientService;
     @DubboReference
     private final RemoteSocialService remoteSocialService;
-    @DubboReference
+    @DubboReference(stub = "true")
     private final RemoteMessageService remoteMessageService;
 
     /**
@@ -97,10 +97,7 @@ public class TokenController {
 
         Long userId = LoginHelper.getUserId();
         scheduledExecutorService.schedule(() -> {
-            try {
-                remoteMessageService.sendMessage(userId, "欢迎登录RuoYi-Cloud-Plus微服务管理系统");
-            } catch (Exception ignored) {
-            }
+            remoteMessageService.sendMessage(userId, "欢迎登录RuoYi-Cloud-Plus微服务管理系统");
         }, 3, TimeUnit.SECONDS);
         return R.ok(loginVo);
     }