Я подключаюсь к twitch irc, используя реакторную сетку.
@Bean
public Mono<Void> wsClient() {
return new ReactorNettyWebSocketClient()
.execute(URI.create("wss://irc-ws.chat.twitch.tv:443"), handler);
}
Часть 1 и 2 выполняются, но часть 3 всегда игнорируется
@Override
public Mono<Void> handle(WebSocketSession webSocketSession) {
System.out.println("handle");
//Part 1
Mono<Void> handler = webSocketSession.send(Flux.fromArray(new WebSocketMessage[]{
webSocketSession.textMessage("PASS " + token),
webSocketSession.textMessage("NICK euclibot")}));
//Part 2
Mono<Void> chatHandler = handler.and(webSocketSession.send(webSocketSession.receive()
.map(WebSocketMessage::getPayloadAsText)
.map(this::executeCommand)
.map(webSocketSession::textMessage)));
//Part 3
return chatHandler.and(webSocketSession.send(Flux.interval(Duration.ofSeconds(30))
.flatMap(interval -> chat.newChannels())
.map(webSocketSession::textMessage)));
}
И это не изменится, даже если я поменяю местами части 2 и 3, часть 3всегда игнорирую.
Я на 100% уверен, что это глупая ошибка, которую я упускаю из виду.