我正在使用simple-peer创建一个使用NodeJS、SocketIO和Angular的小型视频通话应用程序
我正在尝试在这里实现full-mesh。我有一个对等initialtor,它将启动循环中的信号。
我的代码如下。
const peer = new SimplePeer({
initiator: true,
trickle: false,
stream,
});
peer.on("signal", signal => {
console.log(userToSignal, "signal-callerID");
this.peerService.emit("sending signal", { userToSignal, callerID, signal })
})此函数将在循环中。当一个新用户连接时,它会向该用户发送信号,我的问题是,即使只有一个用户连接,peer.on("signal", signal =>事件也会重复自己,它会在一个对等节点上创建11个请求。这里的问题是什么?我如何解决它?
我引用了this code,并试图在angular中实现它。
发布于 2020-07-18 15:37:42
这是正常的行为,一个提议和冰块候选人。如果您只想要一条消息,请将trickle选项设置为false,如here所述。请注意,这将在建立连接时产生额外的延迟。
发布于 2020-09-03 16:11:02
我也有同样的问题。只需尝试使用simple peer library版本9.6.2。它成功了!
发布于 2020-10-27 01:46:16
将此代码添加到您的客户端。我制作了Express webRTC应用程序,发现有太多的对等点添加到我的客户端响应型对等点阵列中。因此,请在Issues中查找此代码。顺便说一句,试试这个。
socketRef.current.on("user joined", payload => {
const item = peersRef.current.find(p => p.peerID === payload.callerID);
if(!item) {
const peer = addPeer(payload.signal, payload.callerID, stream);
peersRef.current.push({
peerID: payload.callerID,
peer,
})
peers.push(peer);
}
});这对我很管用。重新发送信号后,节点不会添加到您的数组中,您将从另一个节点获得视频流。
https://stackoverflow.com/questions/62960740
复制相似问题