最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Having multiple peers PeerJS? - Stack Overflow

programmeradmin2浏览0评论

Here is my code for connections with 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();
}

I borrrowed this code, and I was wondering it is possible to have multiple connections between peers, like a call group. My hypothesis is that all I would have to do is add a new audio object when the peer detects that a new person is calling, and then have it so the different users receive the ids of the other users and have audio objects added to their pages as well. Would this work? Is there a more efficient way to do it?

Here is my code for connections with 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();
}

I borrrowed this code, and I was wondering it is possible to have multiple connections between peers, like a call group. My hypothesis is that all I would have to do is add a new audio object when the peer detects that a new person is calling, and then have it so the different users receive the ids of the other users and have audio objects added to their pages as well. Would this work? Is there a more efficient way to do it?

Share Improve this question edited Mar 28, 2015 at 17:57 user3864563 asked Mar 23, 2015 at 19:22 user3864563user3864563 4051 gold badge9 silver badges22 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 0

A peer can maintain a list of out-ing streams. For example, when a peer connects to the system, then all the other peers will get informed, and save the id of this peer to their list. When a peer tries to start a call, it then will traverse all the peers in its list. One example you can check is the peerjs-audio-chat by Noah Burney.

发布评论

评论列表(0)

  1. 暂无评论