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