【问题标题】:Cannot GET /peerjs/peerjs/id无法获取 /peerjs/peerjs/id
【发布时间】:2021-02-27 10:27:55
【问题描述】:

在控制台输出:peerjs.min.js:64 GET http://localhost:3030/peerjs/peerjs/id?ts=16144206488930.6577072628446186 404(未找到)

在网络标签中展开错误后显示:Cannot GET /peerjs/id

我尝试更改端口号,甚至在某些地方添加引号。我正在尝试制作缩放克隆。我确信这是一个小错误导致如此头痛。因此,我们将不胜感激。

客户端

    const socket = io('/');
    
    const videoGrid = document.getElementById('video-grid');
    
    const myVideo = document.createElement('video');
    myVideo.muted = true;
    
    var peer = new Peer(undefined, {
        path: '/peerjs',
        host: '/',
        port: '3030'
    });
    
    let myVideoStream
    navigator.mediaDevices.getUserMedia({
        video: true,
        audio: true
    }).then(stream => {
        myVideoStream = stream;
        addVideoStream(myVideo, stream);
    })
    
    peer.on('open', id => {
        socket.emit('join-room', ROOM_ID, id);
    })
    
    
    socket.on('user-connected', (userId) => {
        connecToNewUser(userId);
    })
    
    const connecToNewUser = (userId) => {
        console.log(userId);
    }
    
    const addVideoStream = (video, stream) => {
        video.srcObject = stream;
        video.addEventListener('loadedmetadata', () => {
            video.play();
        })
        videoGrid.append(video)
    }

服务器端

const express = require('express')
const app = express();
const server = require('http').Server(app);

const io = require('socket.io')(server);

const { v4: uuidv4 } = require('uuid');
const { ExpressPeerServer } = require('peer');
const peerServer = ExpressPeerServer(server, {
    debug: true
});

app.set('view engine', 'ejs');

app.use(express.static('public'));


app.get('/', (req, res) => {
    // res.status(200).send("Hello World")
    res.redirect(`/${uuidv4()}`);
    // res.send(`/${uuidv4()}`);
})

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

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


server.listen(3030);

【问题讨论】:

  • 我遇到了同样的问题。你找到解决办法了吗?我正在使用 vue.js 3
  • @NewBie1234 不,我没有找到任何解决方法,不得不暂停项目
  • 有什么新发现吗?
  • 控制台显示/peerjs/peerjs/id,但错误显示/peerjs/id...哪个是真的?一旦我们弄清楚哪个 URL 是正确的……那么您希望哪个路由处理该请求?
  • 如果还有其他人面临这个问题,正如答案“app.use(/peerjs, peerServer)”中提到的,应该添加以及关于客户端对等的上述问题 -对象“路径”已定义,但在启动对等服务器“路径”时未定义

标签: javascript node.js webrtc peerjs


【解决方案1】:

只需在服务器端添加app.use('/peerjs', peerServer) 即可。

【讨论】:

  • @Piyush 添加这一行 "app.use('/peerjs', peerServer)" 这是唯一的缺失点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多