我一直试图使用Spring (2.1.1.RELEASE)实现服务器发送的事件,并在JavaScript应用程序(Rang7)中使用它。
问题是,每当我在客户机上的.close()方法上使用EventSource时,服务器就会抛出:
错误java.io.IOException:主机中用于HTTP "/price“的软件中止了已建立的连接,但ServerHttpResponse已经提交(200 OK)
代码非常简单:
@RestController("/price")
public class PriceController {
private final PriceProvider priceProvider;
public PriceController (PriceProvider priceProvider) {
this.priceProvider = priceProvider;
}
@GetMapping(produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<Price> randomPrices () {
return priceProvider.getPrices().log();
}}
Flux的创建方式如下:
Flux.interval(Duration.ofSeconds(1)).map(i -> randomPrice());在客户端,我试图使用本机EventSource和polly填充,但结果始终相同。这是输出:
尽管如此,程序的行为似乎是正确的,尽管我的日志中充满了这些丑陋的错误。有没有办法解决这个问题,或者至少吞下这个例外?
https://stackoverflow.com/questions/53598208
复制相似问题