{
"event_type": "0",
"fire_id": "12345",
"fire_location": { "lat": 36.5684, "lon": 128.7294 },
"fire_timestamp": "2025-12-02T14:30:00",
"inference_timestamp": "2025-12-02T14:31:23.456789",
"model": "a3c_16ch_v3_lstm_rel",
"predictions": [
{
"timestep": 1,
"timestamp": "2025-12-02T14:40:00",
"predicted_cells": [
{ "lat": 36.5685, "lon": 128.7295, "probability": 1.0 }
]
}
]
}
const es = new EventSource("/fires/sse-stream");
es.addEventListener("connect", (e) => {
console.log("SSE connected:", e.data);
});
es.addEventListener("fire_prediction", (e) => {
const data = JSON.parse(e.data); // FirePredictionRequestDto
// data.fire_id 기준으로 기존 데이터 교체 or 신규 추가
// data.predictions[].predicted_cells[]로 지도 갱신
});
es.addEventListener("fire_end", (e) => {
const data = JSON.parse(e.data);
// data.fire_id 기준으로 지도에서 해당 화재 관련 마커/레이어 제거
});
es.onerror = (err) => {
console.error("SSE error:", err);
// 필요 시 재연결 로직
};