带代理的 SseEmitter

SseEmitter with proxy

我的 spring 应用程序中存在 SSE 问题。

当我 运行 我的代码在我的本地环境中时,它工作得很好。

但是当我在我的服务器上部署我的应用程序时,我无法从我的 SseController 获得响应

这是我的代码

  @GetMapping("/api/sse/connect")
public SseEmitter getConnexion(){
    if(sseEmitters == null){
        sseEmitters = new ArrayList<>();
    }
    SseEmitter emitter = new SseEmitter();
    sseEmitters.add(emitter);
    emitter.onCompletion(() -> sseEmitters.remove(emitter));
    return emitter;
}

问题是,当应用程序在服务器上时,/api/sse/connect 的请求没有得到服务器的任何响应,但是 return 值的其他控制器工作

我认为这可能是代理问题,但我找不到有关此错误的任何信息

希望你能帮助我!

您使用哪个代理? 有些代理需要特殊配置(content-length、headers 等)来支持 SSE,而有些则不需要(例如 AWS 负载均衡器(至少去年))。