我正在使用WebFlux开发SSE客户端。我要实现的是以某种方式设置客户端
但是,据我了解,基于JavaScript的客户端基本上可以满足(1)和(2)。
我的问题:有没有一种方法可以配置WebFlux客户端以显示所需的行为(1)和(2)(理想情况下是通过构建器和流畅的编码样式“以声明方式”显示)? -我没有找到有关如何执行此操作的任何信息,但是,我认为这些是SSE客户端的标准要求。
这是我用于测试的基本代码:
final SslContext sslContext
= SslContextBuilder
.forClient()
.trustManager(InsecureTrustManagerFactory.INSTANCE)
.build();
final HttpClient httpClient
= HttpClient
.create()
.secure(t -> t.sslContext(sslContext));
final WebClient client
= WebClient
.builder()
.clientConnector(new ReactorClientHttpConnector(httpClient))
.build();
final ParameterizedTypeReference<ServerSentEvent<String>> type = new ParameterizedTypeReference<ServerSentEvent<String>>() {};
final Flux<ServerSentEvent<String>> eventStream
= client.get()
.uri(endpointURL)
.exchange()
.flatMapMany(it -> it.bodyToFlux(type))
.repeat();
eventStream
.subscribe(
this::updateInformation
, error -> LOGGER.error("Error - {}", error.getMessage())
, () -> LOGGER.info("Got event stream completion signal."));