我有一个在Ubuntu 14.04服务器上运行的node.js应用程序,我也依赖于apache,因为我的应用程序在后端使用MySQL。我在端口8080上运行apache,在端口80上监听节点应用程序。(只是一些初步信息)所以我从letsencrpyt获得了ssl证书,但它似乎没有使用socket.io。
这是我的代码
app.js
var favicon = require('serve-favicon');
var crypto = require("crypto");
var mysql = require('mysql');
var http = require('http');
var fs = require('fs');
var _favicon = favicon(__dirname + '/favicon.ico');
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
port: '3306',
password: 'password',
database : 'database'
});
connection.connect(function(err){
if(!err) {
console.log("mysql connected");
} else {
console.log(err);
}
});
var https = require('https');
var options = {
key: fs.readFileSync('../privkey.pem'),
cert: fs.readFileSync('../cert.pem')
};
var server = https.createServer(options,
function(req, response){
fs.readFile(__dirname + '/index.html',
function(err, data){
if(err){
response.writeHead(500);
return response.end('error');
} else {
_favicon(req, response, function onNext(err){
if(err){
response.writeHead(200);
response.end(data);
} else {
response.writeHead(200);
response.end(data);
}
});
}
})
});
var io = require('socket.io').listen(server);
server.listen(80, "0.0.0.0");
然后在客户端我这样做
<script src="https://cdn.socket.io/socket.io-1.4.5.js"></script>
var socket = io.connect('https://localhost', {secure: true, port: 80});
这可能都是错的,我怎么做才能让人们输入我的域名&#34; oncampus.ws&#34;他们被重定向到https位置&#34; https://www.oncampus.ws&#34; ?