У меня вопрос по поводу Spring Webflux.Я хотел создать реактивную конечную точку, которая использует тип контента text / event-stream.Не производить, а потреблять.Одна из наших служб должна отправлять множество мелких объектов другому, и мы подумали, что потоковая передача этим способом может быть хорошим решением.
@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 полностью читает издатель, а затем отправляет данные целиком, а не передает их по очереди.Могу ли я что-нибудь сделать, используя этот клиент или любой другой?Я не хочу идти по пути веб-сокетов.