【发布时间】:2020-09-23 01:26:54
【问题描述】:
我只是在学习如何在我的 nodejs Web 应用程序中使用 https,并且我正在尝试使用 Socket.IO。但是,当我尝试为客户端包含 socket.io js 时,出现错误。
我的客户端代码:
<html>
<head>
<title></title>
</head>
<body>
<h1>Hi</h1>
<button onclick="newMSG()">Test</button>
<script type="text/javascript" src="//socket.io/socket.io.js"></script>
<script type="text/javascript" src="src/client.js"></script>
</body>
</html>
客户端 JS:
const sock = io();
function newMSG(){
sock.emit('newPost', 'test','123','4:40am')
}
我的服务器端:
const socketio = require("socket.io");
var fs = require('fs');
var http = require('http');
var https = require('https');
var express = require('express');
var app = express();
const clientPath = `${__dirname}/../client/`;
app.use(express.static(clientPath));
const credentials = {
key: fs.readFileSync('KEY'),
cert: fs.readFileSync('CERT')
};
var httpServer = http.createServer(app);
var httpsServer = https.createServer(credentials, app);
httpServer.listen(80);
httpsServer.listen(443);
const io = socketio(httpServer);
io.on('connection', (sock) => {
sock.emit('messageI', 'Server: User Connected');
console.log("New Connection");
sock.on('newPost', (title,text, account, time) => {
var info = {
titleP: title,
textP: text,
accountP: account,
timeP:time
}
savedData = JSON.stringify(info)
fileName = title.substring(0,5) + ".json"
fs.writeFile(filename, savedData)
});
});
httpServer.on('error', (err) => {
console.error('server error:', err);
});
值得注意的是,此问题仅在我访问我的网站的 HTTPS 版本时发生,而不是我的 HTTP 版本。任何帮助将不胜感激。
编辑: 我通过在脚本前添加第二个“/”解决了屏幕截图中的“中间”错误
【问题讨论】:
标签: javascript node.js express https socket.io