Node.js 连接到'的WebSocket;ws://localhost:5000/socket.io/…';失败:WebSocket握手期间出错:意外响应代码:400

Node.js 连接到'的WebSocket;ws://localhost:5000/socket.io/…';失败:WebSocket握手期间出错:意外响应代码:400,node.js,mongodb,sockets,socket.io,react-functional-component,Node.js,Mongodb,Sockets,Socket.io,React Functional Component,我正在尝试创建一个聊天应用程序,它使用MongoDB和Websocket的实时数据库。 这是我的第一个React、MongoDB和Websocket项目,请原谅可能的琐事:D 我目前正在创建一个新用户,刷新数据库,并最终在每个用户的前端实时显示创建的用户 创建和保存一个新用户可以正常工作,并且在数据库更改后(通过socket.io)实时记录新用户的数据也可以正常工作。现在,我想在我的应用程序前端访问数据库更改的信息,以便刷新无序的用户列表现在我想解决一个问题:我尝试使用以下代码连接前端和后端:

我正在尝试创建一个聊天应用程序,它使用MongoDB和Websocket的实时数据库。 这是我的第一个React、MongoDB和Websocket项目,请原谅可能的琐事:D

我目前正在创建一个新用户,刷新数据库,并最终在每个用户的前端实时显示创建的用户

创建和保存一个新用户可以正常工作,并且在数据库更改后(通过socket.io)实时记录新用户的数据也可以正常工作。现在,我想在我的应用程序前端访问数据库更改的信息,以便刷新无序的用户列表
现在我想解决一个问题:
我尝试使用以下代码连接前端和后端:

//...

import socketIOClient from "socket.io-client";
const ENDPOINT = "localhost:5000";

const MainContentArea = () => {

   useEffect(()=>{
       const socket = socketIOClient(ENDPOINT);
       socket.on("changes", data => {
           console.log(data);
       })
   });

//...
以下是我的后端代码:

const express = require('express');
const http = require('http');
const socketIo = require('socket.io');
const index = require('./routes/index');
const port = process.env.PORT || 5000;
const app = express();
app.use(index);

const server = app.listen(port, () => {
    console.log(`Server ist running on port: ${port}`);
})
const io = socketIo(server).listen(server);

const cors = require('cors');
const mongoose = require('mongoose');

require('dotenv').config({
    path: './.env'
});

const Users = require('./models/user.model');

app.use(cors());
app.use(express.json());

const usersRouter = require('./routes/users');

app.use('/users', usersRouter);

const uri = process.env.ATLAS_URI;
mongoose.connect(uri, {
    
    useNewUrlParser: true,
    useCreateIndex: true,
    useUnifiedTopology: true

}, 

function(err){
    if(err){
        console.log("server.js err line 44");
        throw err;
    }

    io.on('connection', (socket) => {
        console.log('user connected');
        socket.on('disconnect', (socket) => {
            console.log('user disconnected');
        })
    })
    Users.watch().on('change', (change) => {
        console.log('socket says: something changed in db');
        console.log('change: ', change.fullDocument);
        io.to(change.fullDocument).emit('changes',change.fullDocument)
    })
}
);

const connection = mongoose.connection;
connection.once('open', () => {
    console.log("MongoDB database connection established successfully");
})
我一直收到错误消息:
到“ws://localhost:5000/socket.io/”的WebSocket连接?EIO=3&transport=websocket&sid=33wU6D8PnqclT3iZAAAB'失败:websocket握手期间出错:意外响应代码:400
我用的是Chrome,我用的是MacOS。
我非常感谢任何可能有助于解决我问题的建议

我希望,我如何发布我的问题对任何愿意帮助我的人都有帮助。如果没有,请随时给我一些建议,告诉我下次应该做得更好!这是我在这里的第一篇文章