Amazon web services 用于服务器端事件(eventSource)的带有HTTPS重定向的AWS负载平衡器

Amazon web services 用于服务器端事件(eventSource)的带有HTTPS重定向的AWS负载平衡器,amazon-web-services,nginx,url-redirection,eventsource,Amazon Web Services,Nginx,Url Redirection,Eventsource,伙计们 我正在AWS Elastic beanstalk上用JAVA Spring和负载平衡器构建一个网站。简而言之,我有一个页面,它使用客户端的eventsource和Java Spring后端的SSEEmiter从服务器接收服务器端事件(SSE) 我希望我的网站使用HTTPS,因此我按照官方建议设置NGINX配置: 它工作得很好…当我用HTTP连接到我的网站时,它会自动重定向到HTTPS 但是,我的服务器端事件停止工作 我尝试了另一个帖子的解决方案: 但这没用 在我的服务器端,我还根据其他

伙计们

我正在AWS Elastic beanstalk上用JAVA Spring和负载平衡器构建一个网站。简而言之,我有一个页面,它使用客户端的eventsource和Java Spring后端的SSEEmiter从服务器接收服务器端事件(SSE)

我希望我的网站使用HTTPS,因此我按照官方建议设置NGINX配置:

它工作得很好…当我用HTTP连接到我的网站时,它会自动重定向到HTTPS

但是,我的服务器端事件停止工作

我尝试了另一个帖子的解决方案: 但这没用

在我的服务器端,我还根据其他建议添加了httpHeaders

服务器端:

public static final class CustomSseEmitter extends SseEmitter {
    static final MediaType UTF8_TEXT_EVENTSTREAM = new MediaType("text", "event-stream", Charset.forName("UTF-8"));

    @Override
    protected void extendResponse(ServerHttpResponse outputMessage) {
        HttpHeaders headers = outputMessage.getHeaders();
        headers.set("X-Accel-Buffering", "no");
        headers.set("Cache-Control", "no-cache");
        headers.set("Connection", "keep-alive");
        headers.set("Content-Type", "text/event-stream");
        if (headers.getContentType() == null) {
            headers.setContentType(UTF8_TEXT_EVENTSTREAM);
        }
    }
}
客户端:

var registerSSE = function (companyId, retryCount) {
    source = new EventSource("/middle/registerSSE/" + companyId);

    source.onopen = function (e) {
        console.log("Build SSE successful");
    };

    source.onmessage = function (e) {
        console.log("receive SSE");
    };
    source.onerror = function (e) {
        console.error("SSE broken [" + e.data + "], retry " + (
        ++retryCount) + " times!");
    }
}
对不起,在这种情况下,我是一个新手,我如何结合这两个必需的功能

如有任何建议,将不胜感激。
谢谢。

是否有日志记录,以便您可以查看您遇到的错误?您好,我们在AWS上发现了SSE停止工作的问题。你找到解决办法了吗?