2014-05-13 137 views
0

我使用node.js和socket.io作为我们的聊天应用程序,并且一切正常,直到我们决定实施SSL证书。套接字未使用SSL连接

SSL之前我们SocketServer的连接是这样的:

// Start up a Node server with Socket.IO 
var io = require('socket.io').listen(8080,{ 
    'log level':1 
}); 

和Socket这样

socket : io.connect('http://111.111.111.111:8080'),

后,我们实现我们的设置下域名代理指令。现在任何发送到https://example.com/nodejs的请求都将传递给localhost:8080。 所以我改变了连接这样的:

// Instantiate the Socket.IO client and connect to the server 
socket : io.connect('https://example.com/nodejs'), 

但连接zhcon失败并重定向到404页。我不知道问题出在哪里,所以我需要你的帮助。

感谢

回答

1

Socket.io找不到网页的原因是听的HTTP服务器和网站的js通过HTTPS连接到它,这是我的解决方案,希望有所帮助:

var https = require('https'); 
var express = require('express'); 
var app = express(); 

// app.use ... 
// app.set ... 

var credentials = { 
    key: fs.readFileSync('./config/privateKey'), 
    cert: fs.readFileSync('./config/certificate') 
}; 

var https_server = https.createServer(credentials, app); 

var io = SocketIO.listen(https_server, {}); 

io.set('authorization', function(handshakeData, callback) { 
    // ... 
}); 

io.sockets.on('connection', function(socket) { 
    // ... 
}); 
+0

非常感谢。你的一些代码可以帮助我理解与套接字的连接,现在我将它连接起来。 –