Java WebFlux和Reactor 3.4.0-弃用的FluxProcessors-如何使用接收器订阅?
在Reactor 3.4.0中,不同的FluxProcessor(如“DirectProcessor”)越来越不受欢迎。我使用这种处理器作为订阅者,参见下面的示例 现在我想知道如何迁移代码以使用推荐的Java WebFlux和Reactor 3.4.0-弃用的FluxProcessors-如何使用接收器订阅?,java,spring-webflux,spring-websocket,Java,Spring Webflux,Spring Websocket,在Reactor 3.4.0中,不同的FluxProcessor(如“DirectProcessor”)越来越不受欢迎。我使用这种处理器作为订阅者,参见下面的示例 现在我想知道如何迁移代码以使用推荐的Sinks.many()方法?有什么想法吗 旧代码: DirectProcessor<String> output = DirectProcessor.create(); output.subscribe(msg -> System.out.println(msg)); WebS
Sinks.many()
方法?有什么想法吗
旧代码:
DirectProcessor<String> output = DirectProcessor.create();
output.subscribe(msg -> System.out.println(msg));
WebSocketClient client = new ReactorNettyWebSocketClient();
client.execute(uri, session ->
// send message
session.send(Mono.just(session.textMessage(command)))
.thenMany(session.receive()
.map(message -> message.getPayloadAsText())
.subscribeWith(output))
.then()).block();
提前感谢您的建议。如果有人仍在搜索此内容,请在以下答案中更新:
Many<String> sink = Sinks.many().multicast().directBestEffort();
Flux<String> flux = sink.asFlux();
flux.subscribe(msg -> System.out.println(msg));
WebSocketClient client = new ReactorNettyWebSocketClient();
client.execute(uri, session ->
// send message
session.send(Mono.just(session.textMessage(command)))
.thenMany(session.receive()
.map(message -> message.getPayloadAsText())
.subscribe ... // <-- how to do this with a Sink ??
.then()).block();