Browse Source

fix 修复 后端发消息发送失败无限重试问题

疯狂的狮子Li 9 months ago
parent
commit
51edb74474

+ 1 - 1
ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java

@@ -106,7 +106,7 @@ public class AuthController {
             dto.setMessage("欢迎登录RuoYi-Vue-Plus后台管理系统");
             dto.setUserIds(List.of(userId));
             SseMessageUtils.publishMessage(dto);
-        }, 20, TimeUnit.SECONDS);
+        }, 5, TimeUnit.SECONDS);
         return R.ok(loginVo);
     }
 

+ 2 - 1
ruoyi-common/ruoyi-common-sse/src/main/java/org/dromara/common/sse/core/SseEmitterManager.java

@@ -30,6 +30,7 @@ public class SseEmitterManager {
 
         emitter.onCompletion(() -> emitters.remove(token));
         emitter.onTimeout(() -> emitters.remove(token));
+        emitter.onError((e) -> emitters.remove(token));
 
         try {
             emitter.send(SseEmitter.event().comment("connected"));
@@ -72,7 +73,7 @@ public class SseEmitterManager {
                 try {
                     entry.getValue().send(SseEmitter.event()
                         .name("message")
-                        .reconnectTime(10000L)
+                        .reconnectTime(-1L)
                         .data(message));
                 } catch (Exception e) {
                     emitters.remove(entry.getKey());