我有一个在 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 设置是否应该有一些特定的东西?
非常感谢,这个问题已经很久了......