gpt4 book ai didi

java - 如何从http请求创建Flux

转载 作者:行者123 更新时间:2023-12-02 09:49:18 26 4
gpt4 key购买 nike

我想从多个传入的 http 请求创建一个 Flux 到 spring-mvc Rest 方法或 spring-webflux 方法。
即,任何新的方法调用,其主体将被添加到 Flux 中。该请求可以来自任何客户端,不一定是 WebClient。

最佳答案

您可以使用Flux.create方法来实现

@RestController
@RequestMapping("/")
public class EchoController
{
private final Consumer<String> requestConsumer; // consumer to send signal to the flux

public EchoController()
{
List<Consumer<String>> requestConsumerHolder = new ArrayList<>(); // temporary holder

Flux<String> stringFlux = Flux.create(fluxSink ->
requestConsumerHolder.add(fluxSink::next)); // when consumer accepts string it calls FluxSink.next

stringFlux
.doOnNext(System.out::println) // print string on next
.subscribe();

requestConsumer = requestConsumerHolder.get(0);
}

@PostMapping("/echo")
public Mono<String> echo(@RequestBody Mono<String> request)
{
return request.doOnNext(requestConsumer); // send string to the flux on next
}
}

关于java - 如何从http请求创建Flux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56426806/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com