| 서비스 | 역할 |
|---|---|
| 알림 서버 | 웹푸시 알림을 보냄 |
- Java 11
- Spring Boot
- Spring MVC
- Redis
- firebase FCM
| 기능 | 설명 |
|---|---|
| 알림 기능 | - firebase의 FCM을 이용하여 알림 전송 |
private void sendNotification(String data) {
JSONObject jsonDataObject = new JSONObject(data);
JSONArray disasterMsgArray = jsonDataObject.getJSONArray("DisasterMsg");
JSONArray rowArray = disasterMsgArray.getJSONObject(1).getJSONArray("row"); // 변경된 부분
JSONObject rowObject = rowArray.getJSONObject(0);
String msg = rowObject.getString("msg");
log.info("msg: {}", msg);
try {
Notification notification = Notification.builder()
.setTitle("실시간 재난 알림")
.setBody(msg) // Use the "msg" as the notification body
.build();
List<String> tokens = notificationService.getToken();
for (String token : tokens) {
Message notificationMessage = Message.builder()
.setNotification(notification)
.setToken(token)
.build();
try {
String response = FirebaseMessaging.getInstance().send(notificationMessage);
log.info("알림을 정상적으로 전송했습니다.: {}", response);
} catch (FirebaseMessagingException e) {
log.error("알림 전송 실패: {}", e.getMessage());
}
}
} catch (JSONException e) {
log.error("Error parsing JSON data: {}", e.getMessage());
}
}

