|
@@ -38,21 +38,22 @@ public class SysSSEServiceImpl implements ISysSSEService {
|
|
|
|
|
|
// 用户会话ID
|
|
|
String sid = userSession.getSid();
|
|
|
+ if (null != sid) {
|
|
|
+ try {
|
|
|
+ // 会话关联推送
|
|
|
+ emitters.put(sid, emitter);
|
|
|
|
|
|
- try {
|
|
|
- // 会话关联推送
|
|
|
- emitters.put(sid, emitter);
|
|
|
+ // 当 emitter 完成、超时或发生错误时,从映射表中移除对应的会话信息
|
|
|
+ emitter.onCompletion(() -> emitters.remove(sid));
|
|
|
+ emitter.onTimeout(() -> emitters.remove(sid));
|
|
|
+ emitter.onError((e) -> emitters.remove(sid));
|
|
|
|
|
|
- // 当 emitter 完成、超时或发生错误时,从映射表中移除对应的会话信息
|
|
|
- emitter.onCompletion(() -> emitters.remove(sid));
|
|
|
- emitter.onTimeout(() -> emitters.remove(sid));
|
|
|
- emitter.onError((e) -> emitters.remove(sid));
|
|
|
-
|
|
|
- // 向客户端发送一条连接成功的事件
|
|
|
- emitter.send(SseEmitter.event().comment("connected"));
|
|
|
- } catch (IOException e) {
|
|
|
- // 如果发送消息失败,则从映射表中移除 emitter
|
|
|
- emitters.remove(sid);
|
|
|
+ // 向客户端发送一条连接成功的事件
|
|
|
+ emitter.send(SseEmitter.event().comment("connected"));
|
|
|
+ } catch (IOException e) {
|
|
|
+ // 如果发送消息失败,则从映射表中移除 emitter
|
|
|
+ emitters.remove(sid);
|
|
|
+ }
|
|
|
}
|
|
|
return emitter;
|
|
|
}
|