From 2869d590e6ffeb6ab7ff66611e4b74fdddfa0ba7 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期四, 01 八月 2024 14:55:43 +0800 Subject: [PATCH] update 优化 sse 关闭连接各种异常问题 --- ruoyi-common/ruoyi-common-sse/src/main/java/org/dromara/common/sse/core/SseEmitterManager.java | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/ruoyi-common/ruoyi-common-sse/src/main/java/org/dromara/common/sse/core/SseEmitterManager.java b/ruoyi-common/ruoyi-common-sse/src/main/java/org/dromara/common/sse/core/SseEmitterManager.java index 0f096fa..aa7960c 100644 --- a/ruoyi-common/ruoyi-common-sse/src/main/java/org/dromara/common/sse/core/SseEmitterManager.java +++ b/ruoyi-common/ruoyi-common-sse/src/main/java/org/dromara/common/sse/core/SseEmitterManager.java @@ -1,5 +1,6 @@ package org.dromara.common.sse.core; +import cn.dev33.satoken.stp.StpUtil; import cn.hutool.core.collection.CollUtil; import lombok.extern.slf4j.Slf4j; import org.dromara.common.redis.utils.RedisUtils; @@ -45,7 +46,7 @@ if (emitters != null) { try { emitters.get(token).send(SseEmitter.event().comment("disconnected")); - } catch (IOException ignore) { + } catch (Exception ignore) { } emitters.remove(token); } @@ -71,6 +72,11 @@ if (emitters != null) { for (Map.Entry<String, SseEmitter> entry : emitters.entrySet()) { try { + // token 鏃犳晥鎴栧凡杩囨湡 + if (StpUtil.stpLogic.getTokenActiveTimeoutByToken(entry.getKey()) < -1) { + emitters.remove(entry.getKey()); + continue; + } entry.getValue().send(SseEmitter.event() .name("message") .data(message)); -- Gitblit v1.9.3