Siehe Beispiel Ich verwende hier: https://spring.io/blog/2020/05/12/getting geändert. -Started-with-rsocket-servers-calling-clients < /p>
Problem: Die angegebene Alternative, WebSocket (URL), führt zu Null Zeiger der rsocket Requester.rsocket (), warum?
Code: Select all
@SpringBootApplication
@Slf4j
@AllArgsConstructor
public class RsocketDemoClientApplication implements CommandLineRunner {
private static final String CLIENT_ID = UUID.randomUUID().toString();
private final RSocketRequester rSocketRequester;
private final RSocketRequester.Builder rsocketRequesterBuilder;
public static void main(String[] args) throws Exception {
SpringApplication.run(RsocketDemoClientApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
MimeType SIMPLE_AUTH =
MimeTypeUtils.parseMimeType(WellKnownMimeType.MESSAGE_RSOCKET_AUTHENTICATION.getString());
UsernamePasswordMetadata credentials =
new UsernamePasswordMetadata(“user”, “secret”);
URI url = URI.create("ws://localhost:7000");
SocketAcceptor responder = RSocketMessageHandler.responder(rSocketRequester.strategies(), new EventStreamHandler());
RSocketRequester requester = rsocketRequesterBuilder
.setupRoute("client-connect")
.setupData(CLIENT_ID)
.setupMetadata(credentials, SIMPLE_AUTH)
.rsocketStrategies(builder ->
builder.encoder(new SimpleAuthenticationEncoder()))
.rsocketConnector(connector -> connector.acceptor(responder))
.websocket(url);
//.connectWebSocket(url) -> old one that works but deprecated
//.block();
requester.rsocket()// -> rsocket() = null why?
.onClose()
.doOnError(error -> log.warn("Connection CLOSED"))
.doFinally(consumer -> log.info("Client DISCONNECTED"))
.subscribe(response -> log.info("client-connect server response {}", response));
}
}