为什么Reactor.create流仅是一个元素?

时间:2019-04-02 16:18:05

标签: java spring-boot spring-webflux

我想创建一个将数据流传输到客户端的端点。

当我使用Flux.generate方法创建助焊剂时,一切正常,但是当我使用Flux.create(

@RestController
public class StreamController {

    @GetMapping(value = "/stream-create", produces = APPLICATION_STREAM_JSON_VALUE)
    public Flux<MyObj> streamCreate() {

        Flux<MyObj> flux = Flux.create(emitter -> {
            while (true) {
                emitter.next(new MyObj("my name"));
            }
        });

        return flux.subscribeOn(Schedulers.parallel());
    }

    @GetMapping(value = "/stream-generate", produces = APPLICATION_STREAM_JSON_VALUE)
    public Flux<MyObj> streamGenerate() {

        Flux<MyObj> flux = Flux.generate(emitter -> {
            emitter.next(new MyObj("my name"));
        });

        return flux.subscribeOn(Schedulers.parallel());
    }

当我这样做

curl  https://localhost:8443/stream-generate

我有一个永无休止的

列表
{"name":"my name"}
{"name":"my name"}
{"name":"my name"}
...

(符合预期)

但是

curl  https://localhost:8443/stream-create

只返回一个

{"name":"my name"}

,不再返回任何输出。有什么想法吗?

我想使用Flux.create能够一次发出更多数据。

0 个答案:

没有答案