import org.springframework.web.reactive.function.client.WebClient;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
-import reactor.core.scheduler.Schedulers;
import java.util.*;
static final ParameterizedTypeReference<ServerSentEvent<String>> SSE_TYPE = new ParameterizedTypeReference<>() {};
- public Mono<Void> run()
+ public Flux<MessageTo> run()
{
return Flux
.fromArray(chatRooms)
return Mono.error(e);
}
})
- .doOnNext(message ->
- {
- list.add(message);
- log.info(
- "Received a message from chat-room {}: {}",
- chatRoom.getName(),
- message);
- })
- .take(10);
- })
- .take(100)
- .takeUntil(message -> !running)
- .doOnComplete(() -> log.info("TestListener is done"))
- .parallel(chatRooms.length)
- .runOn(Schedulers.parallel())
- .then();
+ .doOnNext(message -> list.add(message));
+ });
}
Flux<ServerSentEvent<String>> receiveMessages(ChatRoomInfoTo chatRoom)
final Map<UUID, List<MessageTo>> receivedMessages = new HashMap<>();
- volatile boolean running = true;
-
TestListener(Integer port, ChatRoomInfoTo[] chatRooms)
{