File tree Expand file tree Collapse file tree
src/main/java/goorm/back/zo6/sse/application Expand file tree Collapse file tree Original file line number Diff line number Diff line change 55import goorm .back .zo6 .sse .infrastructure .EmitterRepository ;
66import lombok .RequiredArgsConstructor ;
77import lombok .extern .log4j .Log4j2 ;
8- import org .springframework .http .ResponseEntity ;
98import org .springframework .stereotype .Service ;
109import org .springframework .web .servlet .mvc .method .annotation .SseEmitter ;
1110
@@ -25,6 +24,16 @@ public class SseService {
2524
2625 public SseEmitter subscribe (Long conferenceId , Long sessionId ){
2726 String eventKey = generateEventKey (conferenceId , sessionId );
27+ SseEmitter emitter = emitterRepository .findEmitterByKey (eventKey );
28+ if (emitter != null ){
29+ try {
30+ emitter .complete ();
31+ } catch (Exception e ) {
32+ log .warn ("Emitter 연결 끊기에 실패하였습니다.: {}" , e .getMessage ());
33+ }
34+ emitterRepository .deleteByEventKey (eventKey );
35+ }
36+
2837 SseEmitter sseEmitter = emitterRepository .save (eventKey , new SseEmitter (TIMEOUT ));
2938
3039 registerEmitterHandler (eventKey , sseEmitter );
You can’t perform that action at this time.
0 commit comments