프런트로 Stream을 리턴하는 방식은 프런트 처리시 난이도가 높아서, 특수한 경우에 한해 사용하면 좋다.
1. Flux나 Observable 생성: WebFlux나 RxJava에서 Flux 또는 Observable을 사용하여 데이터 스트림을 생성합니다. 이 스트림은 비동기적으로 데이터를 생성하거나 가져올 수 있습니다.
dependencies { implementation 'org.springframework.boot:spring-boot-starter-webflux' }
2. 예제코드 : 보통 Flux를 리턴하고 데이터가 1/0 개일경우는 Mono 리턴.
import reactor.core.publisher.Flux;
@RestController
public class StreamController {
@GetMapping(value = "/stream-data", produces = "text/event-stream")
public Flux<String> streamData() {
// 스트림 생성 예제 (여기서는 간단한 문자열 스트림)
return Flux.just("Data 1", "Data 2", "Data 3")
.delayElements(java.time.Duration.ofSeconds(1)); // 1초마다 데이터 전송
}
}