|
@@ -106,10 +106,19 @@ public class SseUtil {
|
|
String dataStr = (new SseResponse(SseResponseEnum.DISCONNECT)).toJsonStr();
|
|
String dataStr = (new SseResponse(SseResponseEnum.DISCONNECT)).toJsonStr();
|
|
oldEmitter.send(SseEmitter.event().data(dataStr));
|
|
oldEmitter.send(SseEmitter.event().data(dataStr));
|
|
oldEmitter.complete(); // 关闭旧的连接
|
|
oldEmitter.complete(); // 关闭旧的连接
|
|
- manager.removeEmitter(oldEmitter); // 从管理器中移除旧的连接
|
|
|
|
} catch (IOException e) {
|
|
} catch (IOException e) {
|
|
System.out.println(e.getMessage());
|
|
System.out.println(e.getMessage());
|
|
- manager.removeEmitter(oldEmitter);
|
|
|
|
|
|
+ } finally {
|
|
|
|
+ manager.removeEmitter(oldEmitter); // 从管理器中移除旧的连接
|
|
|
|
+ // 如果需要,可以在这里显式关闭底层资源
|
|
|
|
+ if (oldEmitter != null) {
|
|
|
|
+ System.out.println("oldEmitter 仍然未关闭");
|
|
|
|
+ try {
|
|
|
|
+ oldEmitter.complete(); // 再次尝试关闭
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ System.err.println("Failed to forcefully close emitter: " + e.getMessage());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|