java - 带代理的 SseEmitter

标签 java spring server-side server-sent-events

我的 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 的请求没有从服务器得到任何响应,但返回值的其他 Controller 可以工作

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

希望你能帮助我!

最佳答案

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

关于java - 带代理的 SseEmitter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53708816/

相关文章:

java - 需要数组(列表?),但 int 发现错误

java - H2:无法从 jar 内的 sql 文件初始化数据库模式

java - Thymeleaf:迭代 - 按 N 递增并访问 list.get(N)

java - Spring Data JPA 与事务

c# - 每 5 秒检查一次数据库值很昂贵,因为用户数量很多,比如 10000 或更多?

java - 模拟器错误: user data image is used by another emulator

java - 如何在没有字符串的情况下验证正文响应?

java - 使用 Spring Boot 拦截请求和响应以获取/添加相关 ID

redis - 在 getServerSideProps 中使用 redis 会导致错误 net.isIP is not a function

node.js - 为什么使用服务器端渲染时文本渲染速度比图像慢?