访问不同端口托管的WebSocket服务器时出现混合内容错误

Mai*_*tor 4 ssl https certificate websocket node.js

我已经在端口80(http)和443(https)上设置了express服务器node.js。与该服务器分开,我在单独的端口中设置了一个websocket服务器8000

var WebSocketServer = require('ws').Server;
var wss = new WebSocketServer({port: 8000});
Run Code Online (Sandbox Code Playgroud)

Express服务的站点必须连接到那些服务才能正常工作。问题是:通过http可以正常访问我的网站,但是从https,我得到了:

index.js:100 Mixed Content: The page at 'https://example.com/' was 
loaded over HTTPS,  but attempted to connect to the insecure 
WebSocket endpoint 'ws://my_sites_ip:8000/'. This request has been 
blocked; this endpoint must be available over WSS.
Run Code Online (Sandbox Code Playgroud)

为什么我会收到此错误?这与websocket服务器与http服务器位于不同的进程/端口中有关吗?我如何使它工作?

ped*_*ofb 7

错误告诉您该怎么做。使用https时将Websocket与wss一起使用

查看这篇文章 html5带SSLWebsocket WebSocket连接以HTTP或HTTPS握手开始其生命。通过HTTP访问页面时,可以使用WS或WSS(WebSocket安全:WS over TLS)。但是,通过HTTPS加载页面时,只能使用WSS-浏览器不允许“降级”安全性。

  • 对于那些尝试从 docker 容器内部运行 Vue Vite HMR 模块的人来说,这将是非常有洞察力的。 (2认同)