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

标签 node.js laravel ssl socket.io laravel-forge

我有一个在 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/

相关文章:

node.js - 根据 npm start 停止所有进程...

node.js - Mongoose 鉴别器不适用于嵌入式集合

PHP 内存不足

javascript - 带有本地主机的简单 NodeJS 服务器,错误 (404) : "Not found"

javascript - 使用 supertest 测试下载是否成功

php - laravel 如何在静态方法中使用 $this 上下文?

php - 在每个循环 Laravel 中求和

ssl - 正确层的正确 SSL 证书

ssl - 结合使用 CDN 和 SSL

amazon-web-services - 如何在 Cloudformation 模板中指定区域以通过 DNS 验证 ACM 证书