我正在尝试编写一个简单的客户端服务器应用程序。
这就是 HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/4.0.1/socket.io.js"></script>
<script src="client.js"></script>
</body>
</html>
server.js 文件:
const express = require('express');
const app = express();
const port = 3000;
const server = app.listen(port);
const io = require('socket.io')(server);
app.get('/', (req, res) => {
res.send('Hello World!');
});
io.on('connection', (socket) => {
console.log('a user connected');
});
client.js 文件:
const socket = io('https://localhost:3000/');
此时,如果我通过在终端上键入 node server 来启动服务器,并使用 LiveServer vs 扩展程序打开 HTML 文件,则控制台不会显示文本 a user连接,它也会返回一个错误:
<块引用>获取 https://localhost:3000/socket.io/?EIO=4&transport=polling&t=NdZ4wOd net::ERR_SSL_PROTOCOL_ERROR
我不知道我做错了什么。
答案 0 :(得分:0)
在 client.js 文件中,您可以尝试 const socket = io.connect();
,我不确定,但我认为 <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/4.0.1/socket.io.js"></script>
应该在标题中,但我可能错了。
答案 1 :(得分:0)
**在您的服务器文件中进行更改 **
const express = require('express');
const cors = require('cors');
const app = express();
const port = 3000;
app.use(cors());
const server = app.listen(port);
const io = require('socket.io')(server);
app.get('/', (req, res) => {
res.send('Hello World!');
});
io.on('connection', (socket) => {
console.log('a user connected');
});
在使用 npm i cors