我正在使用Javascript中的EventSource连接到Java Spring Boot端点。

当我将应用程序连接到本地Java服务器时,此方法工作正常,但是在连接至开发服务器时,我每33秒左右不断收到net :: ERR_SPDY_PROTOCOL_ERROR 200。

我拥有最新版本的Chrome(v71)。

我究竟做错了什么?

这是我的Java Spring Boot服务器中的功能:

@CrossOrigin
@RequestMapping(path = {"/sse"})
public SseEmitter handleSse(@RequestParam String callId) {
    SseEmitter emitter = new SseEmitter(7200000L);
    this.emitters.put(callId, emitter);
    emitter.onCompletion(() -> this.emitters.remove(callId));
    emitter.onTimeout(() -> this.emitters.remove(callId));
    return emitter;
}

最佳答案

原来问题出在服务器请求超时。我们的服务器将响应发送到请求的时间限制为30秒。但是事件源请求需要保持更长时间。

更改服务器超时限制可以解决此问题。

10-08 09:27