Express服务器上的Websocket错误,PeerJS不';I don’我似乎无法与同龄人建立联系
基于WebRTC的点对点视频聊天功能是通过参考互联网文章实现的。在构建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&..错误,但是对等点之间的连接成功,视频
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=“”;
...
我不知道怎么了。任何帮助都将不胜感激