2017-05-14 5 views
0

Ich lerne gerade, wie man Server mit Knoten js und anderen Javascript APIs erstellt, und ich habe einen HTTP- und HTTPS-Server gebaut, der auf jedem PC-Navigator meines NAT-Netzwerks funktioniert, aber wenn ich den HTTPS-Server auf meinem Android versuche Mobilgerät mit: https://192.168.1.20:8443 wo ich meinen node.js Server gebaut habe, wird es nicht laden und sagen die Seite funktioniert nicht, obwohl es mit http funktioniert.HTTPS-Server funktioniert nicht auf einem Android-Mobiltelefon, aber HTTP funktioniert?

Ich würde auch gerne wissen, ob ich meinen Server sichtbar machen oder Zugriff darauf mit meinem Router öffentlichen IP-Adresse und wie könnte ich das tun.

Dies ist mein Server-Code:

var fs = require('fs'); 
var http = require('http'); 
var https = require('https'); 
var cors = require('cors'); 
var privateKey = fs.readFileSync('host.key', 'utf8'); 
var certificate = fs.readFileSync('host.cert', 'utf8'); 

var credentials = {key: privateKey, cert: certificate}; 
var express = require('express'); 
var app = express(); 
app.use(cors()); 
app.use('/work', express.static('/.')) 
app.get('/', function(req, res){ 
    res.sendFile(__dirname + '/index.html'); 
    console.log('Servidor en marxa.'); 
}); 


var httpServer = http.createServer(app); 
var httpsServer = https.createServer(credentials, app); 

httpServer.listen(8080); 
httpsServer.listen(8443); 

Antwort

0

Einige Stunden später habe ich gerade erkannte ich brauchte, um meinen Router-Ports weiterleiten, wo ich meine Node.js Server aufgebaut haben. Ich musste sowohl HTTP (# 80) als auch HTTPS (# 443) weiterleiten, um den Zugriff über die öffentliche IP-Adresse zu ermöglichen.

Auch musste Teil meines Javascript Server-Codes ändern.

var fs = require('fs'); 
var http = require('http'); 
var https = require('https'); 
var cors = require('cors'); 
var privateKey = fs.readFileSync('host.key', 'utf8'); 
var certificate = fs.readFileSync('host.cert', 'utf8'); 

var credentials = {key: privateKey, cert: certificate}; 
var express = require('express'); 
var app = express(); 
app.use(cors()); 
var path = require('path'); 
app.use(express.static(path.join(__dirname, 'public'))); 
app.get('/', function(req, res){ 
    res.sendFile(__dirname + '/index.html'); 
    console.log('Servidor en marxa.'); 
}); 

// your express configuration here 

var httpServer = http.createServer(app); 
var httpsServer = https.createServer(credentials, app); 

httpServer.listen(80,"0.0.0.0"); 
httpsServer.listen(443,"0.0.0.0"); 
var io = require("socket.io")(httpServer); 
Verwandte Themen