我是nodejs / socket.io的新手,我现在已经迷失了2天。我有一个生产应用程序在http上运行正常。我正在尝试将其配置为在https免费cloudflare上运行,但没有成功。这是我的代码:
serve.js
const https = require('https');
const fs = require('fs');
const app = require('express');
const options = {
//(free CloudFlare certifies are instaleld on cPanel)
cert: fs.readFileSync('/etc/ssl/certs/hostnane.example.com.crt'),
key: fs.readFileSync('/etc/ssl/private/hostnane.example.com.key'),
requestCert: true,
};
const server = https.createServer(options, app);
const io = require('socket.io').listen(server);
const { name = 'default', port = '8443'} = args;
app.use(express.static(path.join(__dirname, '/')));
//socket.io stuff
server.listen(+port, 'xx.xxx.xx.xxx', (err) => {
if (err) {
console.log(err.stack);
return;
}
console.log(`Node [${name}] listens on //127.0.0.1:${port}.`);
});
app.js
var socket = io.connect({ query: 'userid='+userOnline});
的index.php
<script src='/socket.io/socket.io.js'></script>
脚本链接正在加载网站的主页。我已尝试xx.xxx.xx.xxx:8443
,https://xx.xxx.xx.xxx:8443
无法加载。
如果我尝试https://www.example.com:8443,我可以访问我的index.html应用程序页面,我想这表明Node / Express正在运行。
任何人都可以帮我解决这个问题吗?