1

我的服务器可以拒绝客户端的设置。这可以在客户端使用 RSocket.onClose() 检测到。
但是有没有办法检测连接是否成功打开,即服务器接受了设置有效负载?
我想要诸如 onOpened() 之类的东西,它会在服务器和客户端接受器都成功时触发。

如果我运行下面的代码,即使服务器拒绝了客户端设置,也会调用客户端的接受器,所以我不能使用它。

    SocketAcceptor serverAcceptor = (setup, sendingSocket) ->
        Mono.error(new RuntimeException("Setup rejected"));

    RSocketServer.create(serverAcceptor)
        .bind(TcpServerTransport.create("localhost", 7000))
        .subscribe();

    SocketAcceptor clientAcceptor = (setup, sendingSocket) -> {
      logger.debug("Accepted");
      return Mono.just(new RSocket() {});
    };

    RSocket socket = RSocketConnector.create()
        .acceptor(clientAcceptor)
        .connect(TcpClientTransport.create("localhost", 7000)).block();
4

0 回答 0