我在我们的聊天应用程序中使用node.js和socket.io,在我们决定实施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'),
实施后,我们在域下设置了Proxy指令。现在,发送到https://example.com/nodejs的任何请求都将传递给localhost:8080。 所以我改变了这样的联系:
// Instantiate the Socket.IO client and connect to the server
socket : io.connect('https://example.com/nodejs'),
但连接faild并重定向到404页面。我不知道问题出在哪里,所以我需要你的帮助。
由于
答案 0 :(得分: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) {
// ...
});