[英]How to create Flux from http requests
我想从多个传入的http请求到spring-mvc rest方法或spring-webflux方法创建Flux。
即,任何新的方法调用,其主体都将添加到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
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.