1

问题:

我刚刚成功地让我的 Node.js 服务器正常工作并使用 SSL 进行设置,太好了。但后来我看到了这个:

[已阻止] ' https://www.mywebsite.com/ ' 的页面是通过 HTTPS 加载的,但运行了来自 ' http://54.xxx.xxx.77:4546/socket.io/socket.io的不安全内容.js ':此内容也应通过 HTTPS 加载。

我尝试将 socket.io URL 更改为https,但这当然不起作用,因为 socket.io 坚持提供它自己生成的文件,这是我认为我无法控制的过程。我可以改变socket.io监听的端口,就是这样。

问题:

那么如何安全地为 socket.io (1.0) 提供服务呢?

编码:

var port = 4546;

var io = require('/node_modules/socket.io')(port);

附带说明一下,我认为 socket.io(它的来回通信)应该在 HTTPS 上正常运行,而无需任何额外工作;我在某处读过。也许有人可以证实。安全地传输 Web 套接字的通信非常重要。

4

1 回答 1

1

这是问题不完全重复的情况之一,但问题的选定答案也回答了这个问题

这很简单:只需将您的 https 服务器对象作为 socket.io 的端口参数传递。

// ... require stuff
var app = express();

// ... set up your express middleware, etc

var server = https.createServer(sslOptions, app);
// attach your socket.io server to the express server
var io = require("socket.io").listen(server);
server.listen(port);

aembke的代码

于 2014-10-28T01:13:04.100 回答