我正在使用电抗器websocket连接到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%确信这是我忽略的愚蠢错误。