Express服务器上的Websocket错误,PeerJS不';I don’我似乎无法与同龄人建立联系

Express服务器上的Websocket错误,PeerJS不';I don’我似乎无法与同龄人建立联系,express,websocket,socket.io,webrtc,peerjs,Express,Websocket,Socket.io,Webrtc,Peerjs,基于WebRTC的点对点视频聊天功能是通过参考互联网文章实现的。在构建Express服务器时,Internet文章中建议的参考代码已部分定制并更改为合适的结构,但出现以下Websocket错误 WebSocket连接到“ws://localhost:3000/socket.io/?EIO=4&transport=WebSocket&sid=ss8E9k0VCkYc91DMAAAA”失败:帧头无效 然而,我引用的互联网文章的示例网页也有一个类似的EIO=3&..错误,但是对等点之间的连接成功,视频

基于WebRTC的点对点视频聊天功能是通过参考互联网文章实现的。在构建
Express
服务器时,Internet文章中建议的参考代码已部分定制并更改为合适的结构,但出现以下
Websocket
错误

WebSocket连接到“ws://localhost:3000/socket.io/?EIO=4&transport=WebSocket&sid=ss8E9k0VCkYc91DMAAAA”失败:帧头无效

然而,我引用的互联网文章的示例网页也有一个类似的
EIO=3&..
错误,但是对等点之间的连接成功,视频聊天是可能的。但是我的代码似乎无法通过点对点连接到

以下是我编写的代码:

package.json

{
  "name": "",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "nodemon ./bin/www",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "nodemonConfig": {
    "ext": "js",
    "ignore": [
      "*.log",
      "database/*"
    ]
  },
  "keywords": [],
  "author": "",
  "license": "UNLICENSED",
  "private": true,
  "dependencies": {
    "cors": "^2.8.5",
    "dotenv": "^9.0.2",
    "ejs": "^3.1.6",
    "express": "^4.17.1",
    "express-useragent": "^1.0.15",
    "helmet": "^4.6.0",
    "moment": "^2.29.1",
    "morgan": "^1.10.0",
    "nodemon": "^2.0.7",
    "path": "^0.12.7",
    "peer": "^0.6.1",
    "socket.io": "^4.0.2",
    "uuid": "^8.3.2",
    "winston": "^3.3.3",
    "winston-daily-rotate-file": "^4.5.5"
  }
}
bin/www

'use strict';

const { app, server } = require('../app.js');

const normalizePort = (value) => {
    const port = parseInt(value, 10);
    if(isNaN(port)) {
        return value;
    }
    if(port >= 0) {
        return port;
    }

    return false;
};

const port = normalizePort(process.env.PORT || 3000);

app.set('port', port);

server.listen(port, '0.0.0.0', () => {});
app.js

const path = require('path');
const express = require('express');
const app = express();
const server = require('http').Server(app);
const expressPeerServer = require('peer').ExpressPeerServer(server, {
    debug: true,
});
const io = require('socket.io')(server, {
    cors: {
        origin: '*',
    },
});
const cors = require('cors');

app.use('/peerjs', expressPeerServer);

app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.engine('html', require('ejs').renderFile);

const mainRouter = require('./routes/main/main');

app.use(cors());
app.use(express.static('public'));
app.use(express.static('conf'));
app.use(express.static('db'));
app.use('/', mainRouter);
app.use((req, res) => {
    res.status(404).send('404 Page not found');
});

io.on('connection', (socket) => {
    socket.on('join-room', (room, user, userName) => {
        socket.join(room);
        socket.to(room).emit('user-connection', user);
    });
});

module.exports = { app, server };
const { v4 : uuidv4 } = require('uuid');
const router = require('express').Router();

router.get('/', (req, res) => {
    res.redirect(`/${uuidv4()}`);
});

router.get('/:room', (req, res) => {
    res.render('main/main', { room : req.params.room });
});

module.exports = router;
<html>
...
<script>
     const ROOM = "<%= room %>";
</script>
<body>
     ...
</body>
</html>
routes/main/main.js

const path = require('path');
const express = require('express');
const app = express();
const server = require('http').Server(app);
const expressPeerServer = require('peer').ExpressPeerServer(server, {
    debug: true,
});
const io = require('socket.io')(server, {
    cors: {
        origin: '*',
    },
});
const cors = require('cors');

app.use('/peerjs', expressPeerServer);

app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.engine('html', require('ejs').renderFile);

const mainRouter = require('./routes/main/main');

app.use(cors());
app.use(express.static('public'));
app.use(express.static('conf'));
app.use(express.static('db'));
app.use('/', mainRouter);
app.use((req, res) => {
    res.status(404).send('404 Page not found');
});

io.on('connection', (socket) => {
    socket.on('join-room', (room, user, userName) => {
        socket.join(room);
        socket.to(room).emit('user-connection', user);
    });
});

module.exports = { app, server };
const { v4 : uuidv4 } = require('uuid');
const router = require('express').Router();

router.get('/', (req, res) => {
    res.redirect(`/${uuidv4()}`);
});

router.get('/:room', (req, res) => {
    res.render('main/main', { room : req.params.room });
});

module.exports = router;
<html>
...
<script>
     const ROOM = "<%= room %>";
</script>
<body>
     ...
</body>
</html>
视图/main/main.ejs

const path = require('path');
const express = require('express');
const app = express();
const server = require('http').Server(app);
const expressPeerServer = require('peer').ExpressPeerServer(server, {
    debug: true,
});
const io = require('socket.io')(server, {
    cors: {
        origin: '*',
    },
});
const cors = require('cors');

app.use('/peerjs', expressPeerServer);

app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.engine('html', require('ejs').renderFile);

const mainRouter = require('./routes/main/main');

app.use(cors());
app.use(express.static('public'));
app.use(express.static('conf'));
app.use(express.static('db'));
app.use('/', mainRouter);
app.use((req, res) => {
    res.status(404).send('404 Page not found');
});

io.on('connection', (socket) => {
    socket.on('join-room', (room, user, userName) => {
        socket.join(room);
        socket.to(room).emit('user-connection', user);
    });
});

module.exports = { app, server };
const { v4 : uuidv4 } = require('uuid');
const router = require('express').Router();

router.get('/', (req, res) => {
    res.redirect(`/${uuidv4()}`);
});

router.get('/:room', (req, res) => {
    res.render('main/main', { room : req.params.room });
});

module.exports = router;
<html>
...
<script>
     const ROOM = "<%= room %>";
</script>
<body>
     ...
</body>
</html>

...
constroom=“”;
...
我不知道怎么了。任何帮助都将不胜感激