【问题标题】:Cross Domain WebSocket Connection [Spring Boot]跨域 WebSocket 连接 [Spring Boot]
【发布时间】:2018-03-21 02:05:57
【问题描述】:

我有两个正在运行的 Spring Boot 服务实例。假设“app1:8080”和另一个实例“app2:7070”。 'app1:8080' 托管一个 html 页面,每当它启动时,它都会尝试将 web-socket 连接与'app2:7070' 连接起来。 像这样的东西: var webSocket = new WebSocket("ws://app2:7070/socket-endpoint");

但我总是收到 403 错误消息。我已阅读有关跨域的信息,并尝试在“app2:7070”中注册“app1:8080”。 但找不到任何解决方案。

服务器技术:spring boot 客户端技术:HTML5

【问题讨论】:

    标签: java html spring-boot cross-domain spring-websocket


    【解决方案1】:

    这很可能是跨源调用的结果。你有不同的选择来解决这个问题:

    • 在两个应用程序前面放置一个负载均衡器,例如 nginx,并使用相同的基本 URL 为它们提供服务
    • 从同一个应用程序中提供 html(如果是小型应用程序,最简单的解决方案)
    • 或在您的情况下允许来自 app1 的 app2 中的跨源调用,如记录的 here

    【讨论】:

    • 不能为具有相同 url 的两个应用程序提供服务,因为它们都是独立的应用程序,也不能从同一个应用程序提供服务{如问题中所述}。您能否尝试分享一个跨源调用的示例,它是否也适用于“wss”调用?
    • 这个 CORS 配置 here 也应该被 websocket 获取
    • 谢谢,能够做到。但仍然不确定“wss”。
    • 很抱歉更新晚了,但是在 wss 上工作并且工作得像个魅力。谢谢乔纳森。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-04
    • 2020-05-02
    • 2014-07-24
    相关资源
    最近更新 更多