diff --git a/monicar-control-center/src/main/java/org/controlcenter/alarm/presentation/AlarmController.java b/monicar-control-center/src/main/java/org/controlcenter/alarm/presentation/AlarmController.java index b8509a0..daf69d8 100644 --- a/monicar-control-center/src/main/java/org/controlcenter/alarm/presentation/AlarmController.java +++ b/monicar-control-center/src/main/java/org/controlcenter/alarm/presentation/AlarmController.java @@ -1,5 +1,7 @@ package org.controlcenter.alarm.presentation; +import jakarta.servlet.http.HttpServletResponse; + import org.controlcenter.alarm.application.AlarmService; import org.controlcenter.alarm.domain.AlarmStatus; import org.controlcenter.alarm.presentation.dto.AlarmResponse; @@ -37,9 +39,12 @@ public class AlarmController implements AlarmApi { private final AlarmService alarmService; - @GetMapping(value = "/subscribe", produces = MediaType.TEXT_EVENT_STREAM_VALUE) + @GetMapping(value = "/subscribe") @PreAuthorize("hasRole('ROLE_USER')") - public SseEmitter subscribe(@AuthenticationPrincipal CustomUserDetails user) { + public SseEmitter subscribe( + HttpServletResponse response, + @AuthenticationPrincipal CustomUserDetails user) { + response.setHeader("X-Accel-Buffering", "no"); return alarmService.subscribe(user.getId()); } diff --git a/monicar-control-center/src/main/java/org/controlcenter/alarm/presentation/swagger/AlarmApi.java b/monicar-control-center/src/main/java/org/controlcenter/alarm/presentation/swagger/AlarmApi.java index 9c34db3..d63432b 100644 --- a/monicar-control-center/src/main/java/org/controlcenter/alarm/presentation/swagger/AlarmApi.java +++ b/monicar-control-center/src/main/java/org/controlcenter/alarm/presentation/swagger/AlarmApi.java @@ -15,12 +15,14 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; @Tag(name = "실시간 알람 API", description = "실시간 알람 API") public interface AlarmApi { @Operation(summary = "SSE 구독", description = "SSE 구독") - SseEmitter subscribe(@AuthenticationPrincipal CustomUserDetails user); + SseEmitter subscribe( + HttpServletResponse response, @AuthenticationPrincipal CustomUserDetails user); @Operation(summary = "알람 승인 API", description = "점검 필요 -> 점검 예정 -> 점검 진행 -> 점검 완료로 순차적으로 상태 변경") void next(