跨域 websocket 连接在 Chrome 中失败,在 Firefox 中工作

问题描述 投票:0回答:2

我最近开始在 chrome 上遇到这个问题,我无法连接到托管在不同域下的 websocket。

示例用例:
考虑一个由负载均衡器前端的域 -> lb.com,具有两个数据中心 -> lb-dc1 和 lb-dc2。应用程序页面由 lb.com 托管,但此页面中的代码将创建一个 Web 套接字连接到 lb-dc1 或 lb-dc2。

这在 firefox/safari 上工作正常,但在 chrome 上此连接失败。

您也可以看到这种行为

https://www.websocket.org/echo.html

测试套接字连接在 chrome 上会失败(我使用的是最新的 91.0 版本),而在 Firefox 上却可以工作。

我有一个 nginx 代理来传递 WSS 请求..它看起来像这样

    location /socket {
      proxy_pass http://<my-service>:8080/socket;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "Upgrade";
      proxy_buffering off;
      proxy_ignore_client_abort off;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header Host $host;
      proxy_read_timeout 86400;
      break;
    }



google-chrome nginx websocket wss
2个回答
2
投票

也许已经晚了,但可能对其他人有帮助。花了一整天后,清除 cookie 对我有帮助(或者只是启动一个新的 Chrome 实例)。这是一场噩梦


1
投票

就我而言,这只是 AdBlock。禁用它解决了问题

© www.soinside.com 2019 - 2024. All rights reserved.