2017-01-03 1 views
0
여기

내 이야기 ​​:

- 나는 SSL을 가진 웹 사이트가 있습니다 https://domain.com
을 - 그리고 라이브 채팅을 만들고 싶어, 그래서 Node.js를
와 리눅스 서버를 uped - 들어 리눅스 서버는 I는 자체 서명 된 인증서 여기

을 만들어 내 서버 코드 (모든 OFC, 단지 기본) :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 }); 
 
});

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

OK :

여기 내 클라이언트 코드입니다! 클라이언트 쪽에서 오류가 있습니다. net :: ERR_CONNECTION_REFUSED (http로 클라이언트를 실행하는 경우 - WS는 작동하지만 브라우저에서 차단 된 "혼합 된 콘텐츠"에 대한 경고가 표시됩니다.)
정말로 감사합니다 4 ur 도움!

답변

0

코드가 이상합니다. 네가 생각하는대로 할 지 모르겠다. 또한 왜 기본 443 대신 포트 80에서 수신 대기하는지 잘 모르겠습니다. https://www.examle.com:80/과 같은 URL을 항상 사용 하시겠습니까? 당신이 포트를 포함하지 않으려면

server.listen(...); 

및 사용의 기본 포트 (80 HTTP를 들어, 443 HTTPS 용) : serverlisten를 호출 지금

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); 

과 :

이 같은 것을보십시오 명시 적으로 모든 URL에.

+0

괜찮습니다. 예를 들어 모든 것을 바꿨습니다. 하지만 이제 클라이언트에 오류가 있습니다 : "net :: ERR_INSECURE_RESPONSE". 코드는 다음과 같습니다. var socket = io.connect ('https : // xxxxxxx', {secure : true, port : 443}); –