将事件源连接到创建并返回SSEEmitter的Java函数时,如何防止出现“ net :: ERR_SPDY_PROTOCOL_ERROR 200”?

时间:2019-01-03 10:58:18

标签: java server-sent-events

我正在使用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;
}

1 个答案:

答案 0 :(得分:0)

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

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