Java 带代理的SSE发射器
我的spring应用程序中存在SSE问题 当我在本地环境中运行代码时,它工作得非常好 但是,当我将应用程序部署到服务器上时,我无法从控制器获得响应 这是我的密码Java 带代理的SSE发射器,java,spring,server-side,server-sent-events,Java,Spring,Server Side,Server Sent Events,我的spring应用程序中存在SSE问题 当我在本地环境中运行代码时,它工作得非常好 但是,当我将应用程序部署到服务器上时,我无法从控制器获得响应 这是我的密码 @GetMapping("/api/sse/connect") public SseEmitter getConnexion(){ if(sseEmitters == null){ sseEmitters = new ArrayList<>(); } SseEmitter emit
@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;
}
@GetMapping(“/api/sse/connect”)
public-getConnexion(){
如果(SSEMITERS==null){
sseEmitters=newarraylist();
}
SseEmitter发射器=新的SseEmitter();
添加(发射器);
发射器.onCompletion(()->sseEmitters.remove(发射器));
返回发射器;
}
问题是,当应用程序位于服务器上时,/api/sse/connect的请求不会从服务器得到任何响应,但是其他返回值的控制器可以工作
我认为这可能是代理问题,但我找不到有关此错误的任何信息
希望你能帮助我 您使用哪种代理?
有些代理需要特殊配置(
内容长度、标题等)来支持SSE,有些则不需要(比如AWS负载平衡器(至少去年))。它是一个公司代理,我没有太多关于它的信息,我的应用程序托管在AWS上。问题是,当我的应用程序在AWS上时,我的请求处于挂起状态。但当我在本地环境上运行应用程序时,没有问题:/AWS负载平衡器不支持SSE(至少在2017年,我还没有检查他们是否解决了问题):请求中有/有一个超时,连接在一段时间后关闭,这对SSE来说很遗憾。。。但是如果你没有收到任何东西,它也可能来自你的公司代理。可能您可以在AWS上使用支持SSE()的nginx代理您的应用程序进行检查。