diff --git a/2019-08/spring-17/spring-17-web-flux/src/main/java/ru/otus/spring/ReactorController.java b/2019-08/spring-17/spring-17-web-flux/src/main/java/ru/otus/spring/ReactorController.java index fdf84e04..537ead63 100644 --- a/2019-08/spring-17/spring-17-web-flux/src/main/java/ru/otus/spring/ReactorController.java +++ b/2019-08/spring-17/spring-17-web-flux/src/main/java/ru/otus/spring/ReactorController.java @@ -1,10 +1,13 @@ package ru.otus.spring; +import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; +import java.time.Duration; + @RestController public class ReactorController { @@ -17,4 +20,14 @@ public class ReactorController { public Flux list() { return Flux.range(1, 10); } + + @GetMapping(path = "/flux/stream", produces = MediaType.TEXT_EVENT_STREAM_VALUE) + public Flux stream() { + return Flux.generate(() -> 0, (state, emitter) -> { + emitter.next(state); + return state + 1; + }) + .delayElements(Duration.ofSeconds(1L)) + .map(Object::toString); + } }