【问题标题】:How may a web page that is loaded via https connect to a WebSocket server running on localhost?通过 https 加载的网页如何连接到在 localhost 上运行的 WebSocket 服务器?
【发布时间】:2023-04-06 06:50:02
【问题描述】:

我正在尝试创建一个可以连接到客户端本地 WebSocket 服务器的网页。这个想法是使用在浏览器中运行的 JavaScript 客户端作为一种代理,以实现远程 Web 服务器和本地安装的实现 WebSocket 服务的客户端应用程序之间的通信。

所以基本上,我要做的是从https://example.com 加载一个网页,其中包含一些JavaScript,可以打开一个新的WebSocket 到ws://localhost:1234/context。 只要通过 http 访问网页,就可以正常工作。 一旦使用 https,Firefox 和 Internet Explorer 拒绝连接,并且 WebSocket 构造函数会引发异常(SecurityError,代码 18)。 现在,我已经找到了来自 Mozilla 的建议,即 https 站点应该只使用安全的 (wss://) WebSockets,而普通的 http 站点应该只使用普通的 WebSockets (link)。但是从 https 上下文中连接到 localhost 时,我并没有真正看到安全问题。此外,这对 Chrome、Opera 和 Safari 来说就像一个魅力。

所以实际的问题是:有没有办法解决这个问题?就像在网页中引入非 https 上下文或类似的东西让所有浏览器从 https 传递的网页中连接到 ws://localhost?

提前非常感谢!我不完全是网络开发人员,所以这种特定于浏览器的行为并不属于我的专业领域:)

【问题讨论】:

    标签: javascript firefox https websocket localhost


    【解决方案1】:

    您必须先接受证书。

    在您的情况下,您只需转到 https://localhost:1234/context 即可。完成后,您可以在问题中使用wss URL。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-19
      • 1970-01-01
      • 2020-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-09
      • 1970-01-01
      相关资源
      最近更新 更多