gpt4 book ai didi

javascript - 有多个对等点 PeerJS?

转载 作者:行者123 更新时间:2023-12-02 22:39:53 29 4
gpt4 key购买 nike

这是我与 PeerJS 连接的代码:

var peer = new Peer({ key: '[PeerJSID]', debug: 3});
peer.on('open', function(){
$('#my-id').text(peer.id);
});
// Receiving a call
peer.on('call', function(call){
// Answer the call automatically (instead of prompting user) for demo purposes
call.answer(window.localStream);
step3(call);
});
peer.on('error', function(err){
alert(err.message);
// Return to step 2 if error occurs
step2();
});
// Click handlers setup
$(function(){
$('#make-call').click(function(){
// Initiate a call!
var call = peer.call($('#callto-id').val(), window.localStream);
step3(call);
});
$('#end-call').click(function(){
window.existingCall.close();
step2();
});
// Retry if getUserMedia fails
$('#step1-retry').click(function(){
$('#step1-error').hide();
step1();
});
// Get things started
step1();
});
function step1 () {
// Get audio stream
navigator.getUserMedia({audio: true, video: false}, function(stream){
// Set your video displays
$('#my-video').prop('src', URL.createObjectURL(stream));
window.localStream = stream;
step2();
}, function(){ $('#step1-error').show(); });
}
function step2 () {
$('#step1, #step3').hide();
$('#step2').show();
}
function step3 (call) {
// Wait for stream on the call, then set peer video display
call.on('stream', function(stream){
$('#their-video').prop('src', URL.createObjectURL(stream));
});
// UI stuff
window.existingCall = call;
$('#their-id').text(call.peer);
call.on('close', step2);
$('#step1, #step2').hide();
$('#step3').show();
}

我借用了这段代码,我想知道对等点之间是否可以有多个连接,例如调用组。我的假设是,当对等方检测到新人正在调用时,我所要做的就是添加一个新的音频对象,然后拥有它,以便不同的用户接收其他用户的 id 并将音频对象添加到他们的页面以及。这行得通吗?有没有更有效的方法来做到这一点?

最佳答案

对等点可以维护输出流的列表。例如,当一个对等点连接到系统时,所有其他对等点都会收到通知,并将该对等点的 id 保存到它们的列表中。当一个对等点尝试开始一个调用时,它将遍历其列表中的所有对等点。您可以查看的一个示例是 peerjs-audio-chat通过诺亚伯尼。

关于javascript - 有多个对等点 PeerJS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29218658/

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