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

问题描述 投票:0回答:1

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

当我将应用程序连接到我的localhost 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;
}
java server-sent-events
1个回答
1
投票

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

更改服务器超时限制解决了问题。

© www.soinside.com 2019 - 2024. All rights reserved.