gpt4 book ai didi

node.js - 如何使用 SSL 查找 Node.js Socket.io 连接地址?

转载 作者:太空宇宙 更新时间:2023-11-03 13:07:05 25 4
gpt4 key购买 nike

我有一个在 Forge 服务器上运行的 Laravel PHP 应用程序。服务器上有多个 Nginx 站点。我正在尝试建立 Socket.io 连接。我之前使用 HTTP 运行过它,但使用 SSL 时会中断。

首先,我在 forge 中创建了一个新站点 (socket.mydomain.com) 并使用 Forever 来运行 Node.js 脚本。我知道脚本正在运行,因为它正在接收事件并在控制台中输出它们 - 我只是无法在前端连接。

我的 socket.io 脚本是:

var https = require('https'),
fs = require('fs');

var options = {
key: fs.readFileSync('/etc/nginx/ssl/socket.example.com/54082/server.key'),
cert: fs.readFileSync('/etc/nginx/ssl/socket.example.com/54082/server.crt')
};

var app = https.createServer(options);

var io = require('socket.io').listen(app);

io.sockets.on('connection', function(socket) {

console.log('connected');

});

app.listen(3000);

我在前端使用的代码是:

<script type="text/javascript" src="https://socket.example.com/socket.io/socket.io.js"></script>
<script type="text/javascript">

var io = io('https://socket.example.com', {secure: true});

....

有谁知道我如何使用 SSL 进行这项工作?比如,地址/端口应该是什么?如何在正确的端口上使用 Forever 启动它?我的 Nginx 设置应该有一些特定的东西吗?

非常感谢,这个问题已经存在很久了....

最佳答案

改变这个

var io = io('https://socket.example.com', {secure: true});

var io = io('https://socket.example.com:3000', {secure: true});

因为您的 Node 应用正在监听端口 3000

关于node.js - 如何使用 SSL 查找 Node.js Socket.io 连接地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35843239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com