2017-01-03 11 views
0

hier ist meine Geschichte:

- Ich habe eine Website mit SSL: https://domain.com
- Und ich mag ein Live-Chat machen, so uped ich Linux-Server mit node.js
- Für linux-Server habe ich ein selbst signiertes Zertifikat

Hier ist mein Server-Code (nicht alle oFC, nur Grundlagen):NodeJS https socket.io

var options = { 
 
    key: fs.readFileSync("key.pem"), 
 
    cert: fs.readFileSync("cert.pem"), 
 
    requestCert: true 
 
}; 
 

 
var app = express(options); 
 
var server = https.createServer(app); 
 
var io = socket.listen(server).listen(80); 
 

 
io.on('connection', function (socket) { 
 
    socket.emit('connectedToServer', { conncted: true }); 
 
});

Hier ist meine Kundennummer:

var socket = io.connect('https://XXX.XXX.XXX.XX', {secure: true, port:80}); 
 
socket.on('connectedToServer', function (data) { 
 
    socket.emit('firstTimeConnected', id); 
 
});

OK! und ich habe einen Fehler auf der Client-Seite: net :: ERR_CONNECTION_REFUSED (wenn ich Client mit http, - WS funktioniert, aber warnte über "Mixed Content", der vom Browser blockiert wird).
Wirklich danke 4 ur Hilfe!

Antwort

0

Ihr Code sieht seltsam aus. Ich bin mir nicht sicher, ob es das tut, was du denkst. Auch ich bin mir nicht sicher, warum Sie auf Port 80 statt der Standard-443 hören. Möchten Sie immer URLs wie https://www.examle.com:80/ verwenden?

so etwas wie dieses Versuchen:

var options = { 
    key: fs.readFileSync("key.pem"), 
    cert: fs.readFileSync("cert.pem"), 
    requestCert: true 
}; 
var app = require('express')(); 
var server = require('https').Server(options, app); 
var io = require('socket.io')(server); 

und rufen jetzt listen auf server:

server.listen(...); 

und Verwendung Standard-Ports (80 für HTTP und 443 für HTTPS), wenn Sie den Port aufnehmen möchten explizit in jeder URL.

+0

ok, hol es dir. Alles wie in unserem Beispiel geändert. Aber jetzt habe ich einen Fehler auf dem Client: "net :: ERR_INSECURE_RESPONSE". Und der Code lautet: var socket = io.connect ('https: // xxxxxxx', {secure: true, Port: 443}); –