我有一个关于 Spring Webflux 的问题。我想创建一个使用内容类型文本/事件流的反应式端点。不是生产而是消费。我们的一项服务需要向另一个服务发送大量小对象,我们认为以这种方式流式传输可能是一个很好的解决方案。@PostMapping(value = "/consumeStream", consumes = MediaType.TEXT_EVENT_STREAM_VALUE)public Mono<Void> serve(@RequestBody Flux<String> data) { return data.doOnNext(s -> System.out.println("MessageReceived")).then();}我正在尝试使用 Spring WebClient 建立与端点的连接并将数据流式传输到它。例如使用代码:WebClient.builder().baseUrl("http://localhost:8080") .clientConnector(new ReactorClientHttpConnector()) .build() .post() .uri("/test/serve") .contentType(MediaType.TEXT_EVENT_STREAM) .body(BodyInserters.fromPublisher(flux, String.class)) .exchange() .block();通量是每 1 秒产生一个值的流。我遇到的问题是 WebClient 完全读取发布者,然后将数据作为一个整体发送,而不是一个一个地流式传输。我可以使用此客户端或其他任何方法来执行此操作吗?我不想采用 websockets 的方式。
添加回答
举报
0/150
提交
取消