我想创建一个将数据流传输到客户端的端点。
当我使用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能够一次发出更多数据。