rinh / fekit

FE Toolkit
233 stars 110 forks source link

fekit server https 启动后无法访问 #113

Open rawbin- opened 8 years ago

rawbin- commented 8 years ago

在端口被占用的情况下还能正常启动(这个不正常),但启动后无法正确访问 fekit default

rawbin- commented 8 years ago

一个建议的解决办法,通过进程判断端口是否被占用 ,通过尝试访问判断是否能正确访问,最终给一个server是否成功启动的结果

    var fs = require('fs');
var https = require('https');
var exec = require('child_process').exec;

exec("netstat -ano", function(err, stdout, stderr) {
    if(err){ return console.log(err); }
    stdout.split('\n').filter(function(line){
        if(line.indexOf("0.0.0.0:443") > -1 || line.indexOf('[::]:443') > -1 ) {
            console.log("there is already a process listen on 443")
        }
    });
});

var server = https.Server({
     key: fs.readFileSync('./certs/server.key'),
     cert: fs.readFileSync('./certs/server.crt')
}, function(req, res){
    res.writeHead(200);
    res.end("hello world\n");
}).listen(443, function(err){  
     console.log("https listening on port: 443");
});

https.get({
     host: 'localhost',
     port:443,
     path: '/',
     method: 'GET',
     rejectUnauthorized:false,
     key: fs.readFileSync('./certs/server.key'),
     cert: fs.readFileSync('./certs/server.crt')
},function(resp){
    if(resp.statusCode !== 200){
        console.log("error to start the server normally")
        server.close();
    }
        console.log(resp.statusCode)
}).on('error',function(err){
    console.log(err)
})