通过 https 加载的网页如何连接到在 localhost 上运行的 WebSocket 服务器?
Posted
技术标签:
【中文标题】通过 https 加载的网页如何连接到在 localhost 上运行的 WebSocket 服务器?【英文标题】:How may a web page that is loaded via https connect to a WebSocket server running on localhost? 【发布时间】:2013-12-15 00:13:28 【问题描述】:我正在尝试创建一个可以连接到客户端本地 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?
提前非常感谢!我不完全是网络开发人员,所以这种特定于浏览器的行为并不属于我的专业领域:)
【问题讨论】:
【参考方案1】:您必须先接受证书。
在您的情况下,您只需转到 https://localhost:1234/context
即可。完成后,您可以在问题中使用wss
URL。
【讨论】:
以上是关于通过 https 加载的网页如何连接到在 localhost 上运行的 WebSocket 服务器?的主要内容,如果未能解决你的问题,请参考以下文章