Skip to content

Socket doesn't receive any termination signal for Mono.empty() response #520

@segabriel

Description

@segabriel

We don't receive any termination signal when the server responds with Mono.empty(). But Flux.empty works fine.

  public static void main(String[] args) {
    RSocketFactory.receive()
        .acceptor(
            (setupPayload, reactiveSocket) ->
                Mono.just(
                    new AbstractRSocket() {
                      @Override
                      public Mono<Payload> requestResponse(Payload p) {
                          return Mono.empty();
//                          return Mono.just(p);
                      }
                    }))
        .transport(TcpServerTransport.create("localhost", 7000))
        .start()
        .subscribe();

    RSocket socket =
        RSocketFactory.connect()
            .transport(TcpClientTransport.create("localhost", 7000))
            .start()
            .block();

    socket
        .requestResponse(DefaultPayload.create("Hello"))
        .doOnEach(System.out::println)
        .map(Payload::getDataUtf8)
        .onErrorReturn("error")
        .block();

    socket.dispose();
  }

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions