Skip to content

Commit 8645203

Browse files
authoredFeb 26, 2025··
Merge pull request #1183 from woowacourse-teams/BE/dev
[BE] 구독 요청한 세션에게만 타이머 상태를 전송하도록 변경한 내용 테스트 서버로 이동
2 parents d15e281 + 591cc55 commit 8645203

File tree

4 files changed

+12
-4
lines changed

4 files changed

+12
-4
lines changed
 

‎backend/src/main/java/site/coduo/timer/service/SchedulerService.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,9 @@ private void reset(final String key, final Timer timer) {
8787
timestampRegistry.register(key, initalTimer);
8888
}
8989

90-
public void notifyTimerStatus(final String key) {
90+
public void notifyTimerStatus(final String key, final String sessionId) {
9191
if (schedulerRegistry.isActive(key)) {
92-
timerStompManager.sendStatus(key, TimerStatus.RUNNING);
92+
timerStompManager.sendStatusToUser(sessionId, key, TimerStatus.RUNNING);
9393
}
9494
}
9595

‎backend/src/main/java/site/coduo/timer/service/TimerStompManager.java

+8
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,14 @@ public void sendStatus(final String accessCode, final TimerStatus status) {
2626
);
2727
}
2828

29+
public void sendStatusToUser(final String sessionId, final String accessCode, final TimerStatus status) {
30+
simpMessagingTemplate.convertAndSendToUser(
31+
sessionId,
32+
String.format(STATUS_DESTINATION, accessCode),
33+
new TimerStatusResponse(status.getMessage(), null)
34+
);
35+
}
36+
2937
public void sendTime(final String accessCode, final long time) {
3038
simpMessagingTemplate.convertAndSend(String.format(TIME_DESTINATION, accessCode), new TimerStartResponse(time));
3139
}

‎backend/src/main/java/site/coduo/websocket/WebSocketHandler.java

-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ public class WebSocketHandler extends TextWebSocketHandler {
2222
public void afterConnectionEstablished(final WebSocketSession session) {
2323
final String pairRoomAccessCode = parsePairRoomAccessCode(session);
2424
pairRoomWebSocketSessionStore.addSession(pairRoomAccessCode, session);
25-
schedulerService.notifyTimerStatus(pairRoomAccessCode);
2625
log.info("연결 성공 : {}", session.getId());
2726
}
2827

‎backend/src/main/java/site/coduo/websocket/stomp/StompEventListener.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ public void onSubscription(final SessionSubscribeEvent event) {
3131
}
3232
final String key = parsePairRoomKey(destination);
3333
if (timerStompManager.isTimerStatusDestination(key, destination)) {
34-
schedulerService.notifyTimerStatus(key);
34+
final String sessionId = headerAccessor.getSessionId();
35+
schedulerService.notifyTimerStatus(key, sessionId);
3536
}
3637
}
3738

0 commit comments

Comments
 (0)
Please sign in to comment.