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

时间:2016-03-07 12:02:10

标签: 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设置应该具体吗?

非常感谢,这已经成为一个问题......

1 个答案:

答案 0 :(得分:0)

更改此

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

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

因为您的节点应用正在侦听端口3000