2012-09-27 11 views
2

Node.js (0.5.11) 및 Socket.IO를 사용하여 간단히 채팅을하고 싶습니다. 나는 순수한 HTTP로 작업했지만 SSL을 시작해야합니다. http://nodejs.org/api/tls.html#tls_tls_sslSocket.IO + Node.js + SSL

코드는 내가 사용 :

app.js를 :

var tls = require('tls'); 
var fs = require('fs'); 

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

var server = tls.createServer(options, function(cleartextStream) { 
    console.log('server connected', 
       cleartextStream.authorized ? 'authorized' : 'unauthorized'); 
    cleartextStream.write("welcome!\n"); 
    cleartextStream.setEncoding('utf8'); 
    cleartextStream.pipe(cleartextStream); 
}); 
server.listen(8000, function() { 
    console.log('server bound'); 
}); 

서버는 좋은 시작 나는 위키처럼 키와 인증서를 생성했습니다.

<script src="https://localhost:8000/socket.io/socket.io.js"></script> 

방화범이 나에게 중단됨 상태를 제공하고이로드되지 렸기 때문에 내가 "IO"개체와 함께 작동하지 않을 수 있습니다 난의 index.php에 Socket.IO에 참조 할 때 문제가 시작됩니다. 또한 "http : // local ..."을 src 속성에서 변경했지만 변경하지 않았습니다. 내가 뭘 잘못 했니? 누군가 나에게 Socket.IO wth SSL을 실행하는 방법에 대한 조언이나 좋은 지침서를 줄 수 있습니까? 이미 응답

당신은 그냥 자동 검색되므로, 단지의 경우 다른 주소로 연결하는 경우 포트와 주소를 업데이트하는 것을 잊지이 필요
+1

tls.createServer는 https.createServer와 다릅니다. 어느 것이 실제로 필요합니까? – Joe

+0

채팅에서 암호화 된 데이터를 전송해야하므로 https가 필요합니다. –

+1

tls.CreateServer 대신 https.createServer를 사용해 보셨습니까? – Joe

답변

0
<script src='/socket.io/socket.io.js'></script> 

에 대한

감사합니다.

서버에 socketio가 포함되어 있습니까? 해당 문제가있는 것 같습니다.

var sockio = require("socket.io"); 
var io = sockio.listen(server); 
+0

"클라이언트 측"에 SocketIO가 설치되지 않은 경우 자동 검색 방법. 서버에서 다운로드해야합니다. 내가 당신의 코드를 확인해야하지만 지금은 할 수 없어, tomorow 내가 대답 할게. 감사! –

+0

클라이언트 측에서 사용하는 socketio js 파일은 자동으로 노드 서버에서 보내집니다. 여기 stackoverflow에서 검색하면 그 질문이 많이 보입니다. 그리고 http://socket.io/#how-to-use에서 데이터 보내기 및 받기 (승인)를 확인하십시오. – Dslayer

관련 문제