Dear All, Thank you so much for all your contribution!
Have a question.
Server side:
I have a rsocket server which accepts Flux<Payload>
and returns a Mono<Status>
.
Client side:
Even though I return from a Mono server, this works perfectly fine and totally ok.
@Autowired
private Mono<RSocketRequester> rSocketRequester;
this.rSocketRequester
.map(r -> r.route(......)
.data(Flux.fromIterable(list))
)
.flatMapMany(r -> r.retrieveFlux(Status.class));
But If I switch to Mono, It does not work!
this.rSocketRequester
.map(r -> r.route(......)
.data(Flux.fromIterable(list))
)
.flatMap(r -> r.retrieveMono(Status.class)); // This is not working and I get below exception.
Why do we not explicitly support Mono here?
reactor.core.Exceptions$ErrorCallbackNotImplemented: java.lang.IllegalStateException: No RSocket interaction with Flux request and Mono response.
Caused by: java.lang.IllegalStateException: No RSocket interaction with Flux request and Mono response.
at org.springframework.util.Assert.state(Assert.java:76) ~[spring-core-5.2.8.RELEASE.jar:5.2.8.RELEASE]
at org.springframework.messaging.rsocket.DefaultRSocketRequester$DefaultRequestSpec.getPayloadMono(DefaultRSocketRequester.java:306) ~[spring-messaging-5.2.8.RELEASE.jar:5.2.8.RELEASE]
at org.springframework.messaging.rsocket.DefaultRSocketRequester$DefaultRequestSpec.retrieveMono(DefaultRSocketRequester.java:268) ~[spring-messaging-5.2.8.RELEASE.jar:5.2.8.RELEASE]
at org.springframework.messaging.rsocket.DefaultRSocketRequester$DefaultRequestSpec.retrieveMono(DefaultRSocketRequester.java:258) ~[spring-messaging-5.2.8.RELEASE.jar:5.2.8.RELEASE]
Comment From: spencergibb
Not really a spring boot question. There is no flux in, mono out interaction model in rsocket. The closest would be flux in, flux out (request channel). See https://github.com/rsocket/rsocket-java/blob/master/rsocket-core/src/main/java/io/rsocket/RSocket.java
Comment From: wilkinsona
Thanks, @spencergibb.
Comment From: rstoyanchev
See also, further discussion under https://github.com/rsocket/rsocket-java/issues/907.