我在端口80(http)和443(https)上设置了express
服务器node.js
。与该服务器分开,我在一个单独的端口8000
中设置了一个websocket服务器:
var WebSocketServer = require('ws').Server;
var wss = new WebSocketServer({port: 8000});
快递服务的网站必须连接到那些服务才能工作。问题是:通过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.
为什么我收到此错误?这与websocket服务器在与http服务器不同的进程/端口这一事实有什么关系吗?我怎样才能让它发挥作用?
答案 0 :(得分:7)
错误告诉你该怎么做。使用https时使用websocket和wss
看看这篇文章 html5 Websocket with SSL WebSocket连接通过HTTP或HTTPS握手开始。通过HTTP访问页面时,您可以使用WS或WSS(WebSocket安全:WS over TLS)。但是,当您的网页通过HTTPS加载时,您只能使用WSS - 浏览器不允许"降级"安全