Хотите реализовать функциональность, используя Spring Web Flux.Все клиенты приложения подключаются к клиентскому сервису через websocket.Затем вы хотите подписать свои сеансы на потоки веб-сокетов с других микросервисов и управлять подписками в соответствии с входящими сообщениями.
@Component
public class ReactiveWebSocketHandler implements WebSocketHandler {
@Override
@NotNull
public Mono<Void> handle(@NotNull WebSocketSession session) {
final WebSocketClient client = new ReactorNettyWebSocketClient();
final URI url1 = URI.create("ws://another-service1");
final URI url2 = URI.create("ws://another-service2");
return session.receive()
.doOnNext(message -> {
final String command = message.getPayloadAsText();
if (command.equals("subscribe sevice1")) {
// client.execute(url1, ...
// get flux stream from client invoke and start sending it to current session
} else if (command.equals("subscribe sevice2")) {
// ...
} else if (command.equals("unsubscribe sevice1")) {
// ...
} else if (command.equals("unsubscribe sevice2")) {
// ...
}
})
.then();
}
Возможно ли реализовать такую логику с помощью webflux?