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.