From 4c1853f7989fc2fdd6bbd54a74cbc651ae2bed52 Mon Sep 17 00:00:00 2001 From: Yuriy Dvorzhetskiy Date: Sat, 26 Oct 2019 12:37:39 +0600 Subject: [PATCH] spring-2019-08 - 17 - websocket example --- .../main/java/ru/otus/spring/ReactorController.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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); + } }