我的服务器可以拒绝客户端的设置。这可以在客户端使用 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();