多方peer.js应用程序

问题描述 投票:0回答:2

我对 PeerJs 和 WebRTC 是全新的。我有一个 1:1 NodeJS/PeerJS 应用程序在我的远程服务器上运行,效果很好。然而现在我想探索将其扩展到 1:N 模型,其中主机 ID 可以有多个对等点连接到它们,并且每个对等点都可以接收其他每个连接的对等点的音频/视频。我现在可以接受大约 4-5 个参与方的通话,因此网状架构就可以了。将来我将进入基于媒体服务器的架构,以便在同一会话中获得更多参与者。

目前在我的代码中,如果通话中有超过 2 方,最后加入的一方将踢出前一方。

请问PeerJS库是否可以支持多方视频聊天(4-5个用户即可)?如果没有,您能否指导我如何将 1:1 应用程序增强为 1:N 模型?我在网上找不到任何明确的方向。

提前非常感谢...:-)

node.js webrtc
2个回答
3
投票

显示一些代码将有助于解决您的问题。通过使用干净的WebRTC,你可以实现电话会议,所以我认为你也可以在peerJs中做到这一点。

在通话开始时,您需要调用 getUserMedia once 并获取本地流。

var myStream;
navigator.getUserMedia({video: true, audio: true}, function(stream) {
    myStream = stream;
}, function(err) {
    console.log('Failed to get local stream' ,err);
});

所以当你向他们提出报价时,你可以写

var call = peer.call('another-peers-id', myStream);
call.on('stream', function(remoteStream) {
    // Show stream in some <video> element.
});

当对等方收到呼叫时,它会应答

peer.on('call', function(call) {
    call.answer(myStream); // Answer the call with an A/V stream.
    call.on('stream', function(remoteStream) {
      // Show stream in some <video> element.
    });
});

希望这可以帮助您解决问题。


0
投票

正在研究peerjs,对于一对一,我想扩展它,所以我计划通过创建多个peerjs实例并为群组通话中的每个对等点保留一个实例来实现

© www.soinside.com 2019 - 2024. All rights reserved.