gpt4 book ai didi

node.js - peer.on ('calll' ) 永远不会被调用

转载 作者:行者123 更新时间:2023-12-04 07:51:40 26 4
gpt4 key购买 nike

Peer js 不工作

我只是在 NodeJs 和 ReactJs 中创建 peerjs 视频流应用程序


下面的代码工作正常,我能够创建新的对等点并且 open 事件也在工作。

const peer = new Peer(undefined,{
host:"/",
port:"5001"
});

peer.on('open',id=>{
socket.emit('join-room', roomId,id);
})

在服务器端,每当发出 'join-room' 事件时,服务器将发出另一个事件 'user-disconnected' 并传递 userId (peerjs) 给客户端。

// server.js
socket.on('join-room',(roomId,userId)=>{
console.log(`user ${userId} joined ${roomId}`);
socket.join(roomId);
socket.to(roomId).emit('user-connected',userId);

socket.on('disconnect', () => {
socket.to(roomId).emit('user-disconnected', userId)
})
})

每当在客户端触发 'user-connected' 时,我都会调用 connectToNewUser 并且到目前为止工作正常。

socket.on('user-connected',userId=>{
console.log("New user connected...")
connectToNewUser(userId, stream)
});

错误

这是在控制台 console.log('connectToNewUser',1222.....) 上记录的,没有错误。

但是,这个 call.on('stream') 永远不会被调用

connectToNewUser(userId, stream) {
console.log('connectToNewUser',userId)
const call = peer.call(userId, stream);
const video = getVideo();
call.on('stream', userVideoStream => {
// never called
console.log('connectToNewUser','on','stream')
addVideoStream(video, userVideoStream)
});
call.on('close', () => {
video.remove()
})

peers[userId] = call
}

call.on('stream') 从未被调用的原因是 peer.on('call') 从未被调用。

peer.on('call', call => {
// never called
console.log('This peer is being called...');
call.answer(stream)
const video = getVideo();
call.on('stream', userVideoStream => {
console.log('This peer is being called...on-stream...');
addVideoStream(video, userVideoStream)
})
});

Github repo

最佳答案

我也遇到了同样的问题,在 StackOverflow 上浏览了 10 多个解决方案之后,这是我的建议。

connectToNewUser() 在用户完成导航器 promise 之前被触发。

尝试修改成这样:

socket.on('user-connected',userId=>{
console.log("New user connected...")
//connectToNewUser(userId, stream)
setTimeout(connectToNewUser,1000,userId,stream)
});

它对我有用。

关于node.js - peer.on ('calll' ) 永远不会被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66937384/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com