"what is the proper way to disconnect peers using simple-peer.js library and stop streaming between those peers? "
"what is the proper way to disconnect peers using simple-peer.js library and stop streaming between those peers? "
希望你们一切都好,
我是 webRTC 的初学者,如果我的问题感觉像个菜鸟,我很抱歉,但我想知道是否有任何适当的方法来关闭对等点之间的连接,尤其是使用简单-peer.js,期待您的解答很棒的回复
这是我的示例反应代码,
if (navigator.getUserMedia) {
navigator.getUserMedia({ audio: { echoCancellation: true }, video: true }, stream => {
let peer = new Peer({
initiator: this.props.isInitiator,
stream
});
this.localStream.current.srcObject = stream;
this.localStream.current.play();
peer.on('signal', (data) => {
socket.emit('offer', { data: JSON.stringify(data), conversation_id: this.props.conversation_id })
});
socket.on('offer', (data) => {
peer.signal(JSON.parse(data))
})
socket.on('DESTROY-VIDEO-CALL-SESSION', () => {
stream.getTracks().forEach(track => track.stop());
peer.removeAllListeners();
peer.destroy();
});
peer.on('stream', (streamData) => {
this.remoteStream.current.srcObject = streamData;
this.remoteStream.current.play();
});
this.setState({
endCall: () => {
socket.emit('VIDEO-CALL-ENDED', this.props.conversation_id);
}
})
}, error => {
alert('Please allow video and audio permission to make this call')
});
}
函数是peer.destroy()。
仅供参考,如果您需要在 Javascript 库中查找未记录的 API 函数,您可以通过在浏览器中 运行 您的 JS 文件并按 F12 调出调试控制台。在实例化要调查的对象后设置断点:
我在实例化 peer1 之后设置了一个断点(第 51 行)。然后我将鼠标悬停在 peer1 上(第 50 行)以弹出属于该对象的所有属性(方法和字段)的菜单。如果您正在寻找这种情况下的特定功能,有时您会立即在此菜单中找到它,但通常您必须展开名为 __proto__ 的 属性 :
您可以在此处看到销毁函数。这只是一个猜测,以这种方式找到的函数是否真的做了你想要它做的事情,但幸运的是,在这种情况下它做了我们想要的。
希望你们一切都好,
我是 webRTC 的初学者,如果我的问题感觉像个菜鸟,我很抱歉,但我想知道是否有任何适当的方法来关闭对等点之间的连接,尤其是使用简单-peer.js,期待您的解答很棒的回复
这是我的示例反应代码,
if (navigator.getUserMedia) {
navigator.getUserMedia({ audio: { echoCancellation: true }, video: true }, stream => {
let peer = new Peer({
initiator: this.props.isInitiator,
stream
});
this.localStream.current.srcObject = stream;
this.localStream.current.play();
peer.on('signal', (data) => {
socket.emit('offer', { data: JSON.stringify(data), conversation_id: this.props.conversation_id })
});
socket.on('offer', (data) => {
peer.signal(JSON.parse(data))
})
socket.on('DESTROY-VIDEO-CALL-SESSION', () => {
stream.getTracks().forEach(track => track.stop());
peer.removeAllListeners();
peer.destroy();
});
peer.on('stream', (streamData) => {
this.remoteStream.current.srcObject = streamData;
this.remoteStream.current.play();
});
this.setState({
endCall: () => {
socket.emit('VIDEO-CALL-ENDED', this.props.conversation_id);
}
})
}, error => {
alert('Please allow video and audio permission to make this call')
});
}
函数是peer.destroy()。
仅供参考,如果您需要在 Javascript 库中查找未记录的 API 函数,您可以通过在浏览器中 运行 您的 JS 文件并按 F12 调出调试控制台。在实例化要调查的对象后设置断点:
我在实例化 peer1 之后设置了一个断点(第 51 行)。然后我将鼠标悬停在 peer1 上(第 50 行)以弹出属于该对象的所有属性(方法和字段)的菜单。如果您正在寻找这种情况下的特定功能,有时您会立即在此菜单中找到它,但通常您必须展开名为 __proto__ 的 属性 :
您可以在此处看到销毁函数。这只是一个猜测,以这种方式找到的函数是否真的做了你想要它做的事情,但幸运的是,在这种情况下它做了我们想要的。