diff --git a/monicar-control-center/src/main/java/org/controlcenter/alarm/application/AlarmService.java b/monicar-control-center/src/main/java/org/controlcenter/alarm/application/AlarmService.java index afc0d2e..81fe7cd 100644 --- a/monicar-control-center/src/main/java/org/controlcenter/alarm/application/AlarmService.java +++ b/monicar-control-center/src/main/java/org/controlcenter/alarm/application/AlarmService.java @@ -136,14 +136,16 @@ public void sendMessageToUser(String userId, String message) { public void sendAll(SendAlarm sendAlarm) { sseEmitters.forEach((userId, emitter) -> { - System.out.println("sendAll userId = " + userId); + System.out.println("Attempting to send to userId = " + userId); try { - emitter.send( - SseEmitter.event() - .name(String.valueOf(sendAlarm.getStatus())) - .data(sendAlarm, MediaType.APPLICATION_JSON) - ); + SseEmitter.SseEventBuilder event = SseEmitter.event() + .name(String.valueOf(sendAlarm.getStatus())) + .data(sendAlarm, MediaType.APPLICATION_JSON); + System.out.println("Event data: " + sendAlarm); + emitter.send(event); + System.out.println("Successfully sent to userId = " + userId); } catch (IOException e) { + System.err.println("Error sending to userId = " + userId + ": " + e.getMessage()); sseEmitters.remove(userId); } }); 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..39a88cf 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 @@ -15,6 +15,7 @@ import org.springframework.http.MediaType; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PatchMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -37,7 +38,8 @@ public class AlarmController implements AlarmApi { private final AlarmService alarmService; - @GetMapping(value = "/subscribe", produces = MediaType.TEXT_EVENT_STREAM_VALUE) + @CrossOrigin(origins = "*", allowedHeaders = "*") + @GetMapping("/subscribe") @PreAuthorize("hasRole('ROLE_USER')") public SseEmitter subscribe(@AuthenticationPrincipal CustomUserDetails user) { return alarmService.subscribe(user.getId()); @@ -64,6 +66,7 @@ public void send( alarmService.newAlarmRequest(alarmId); } + @CrossOrigin(origins = "*", allowedHeaders = "*") @GetMapping @PreAuthorize("hasRole('ROLE_USER')") public BaseResponse> list(