如何在letsencrypt,socket.io和node.js中使用https?

时间:2016-12-27 15:21:47

标签: socket.io

我试图让https与socket.io和node.js一起使用。 如果我用http页面进行测试,我可以连接并且所有工作都可以。

当我尝试加载socket.io.js文件时出现此错误。

GET https://my ip number:3000/socket.io/socket.io.js net::ERR_INSECURE_RESPONSE

我这样链接

 <script src="https://my ip number:3000/socket.io/socket.io.js"></script>

我的server.js文件看起来像这样

    var fs = require('fs');
    var https = require('https');
    var http = require('https');
    var express = require('express');
    var app = express();

    var options = {  
        key: fs.readFileSync('C:/Users/kund-admin/AppData/Roaming/letsencrypt-win-simple/httpsacme-v01.api.letsencrypt.org/manmade.se-key.pem'),
        cert: fs.readFileSync('C:/Users/kund-admin/AppData/Roaming/letsencrypt-win-simple/httpsacme-v01.api.letsencrypt.org/manmade.se-chain.pem')
    };

    var serverPort = 3000;
    var server = https.createServer(options, app);
    var io = require('socket.io').listen(server);
    var port = process.env.PORT || 3000;
    server.listen(port);
    console.log('Server running *:'+port);

//routing
app.get('/', function(req, res) {
    res.sendFile(__dirname + '/messages.asp');
});

如果我在节点终端中运行server.js,我会得到“服务器运行:3000”,但是当我尝试加载索引页面时,我收到错误? 我不知道在这个阶段我做错了什么,我已经测试了很多我不记得我尝试过的东西了!

所以任何输入都非常感谢,谢谢!

解决!! 事实证明,你不能在socket.io.js文件的链接中拥有IP号码! 它必须是域名。 所以必须如此  <script src="https://somedomain.com:3000/socket.io/socket.io.js">

0 个答案:

没有答案