simple-peer on.("signal") 事件重复多次

Posted

技术标签:

【中文标题】simple-peer on.("signal") 事件重复多次【英文标题】:simple-peer on.("signal") event repeats many times 【发布时间】:2020-11-07 15:49:42 【问题描述】:

我正在使用simple-peer 创建一个使用NodeJSSocketIOAngular 的小型视频通话应用程序

我正在尝试在这里实现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 => 事件会重复自身,即使只有 1 个用户连接,它会在 1 个对等点上创建 11 个请求。这是什么问题,我该如何解决?

我指的是this code 并尝试以角度实现它。

【问题讨论】:

面临完全相同的问题。你找到解决办法了吗? 【参考方案1】:

这是正常的行为,offer 和ice 候选人。如果您只想要一条消息,请按照here 的描述将滴流选项设置为 false。请注意,这会在建立连接时产生额外的延迟。

【讨论】:

你好。在发起者和其他发起者中涓涓细流已经是错误的。我只共享了相同的代码。 所以。我该如何解决。即使我禁用了tricklesignal 事件也会多次返回。 第一步是转储它发出的数据。如果它包括候选人,那么涓涓细流:false 不起作用。 您好,我也有同样的问题。您找出原因/解决方案了吗?【参考方案2】:

我遇到了同样的问题。只需尝试使用简单的对等库版本 9.6.2。好用!!!!!!

【讨论】:

【参考方案3】:

将此添加到您的客户。我制作了 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);
        
);

它对我有用。 resignal 后,peers 不会添加到你的数组中,你会从另一个 peer 那里得到你的视频流。

【讨论】:

以上是关于simple-peer on.("signal") 事件重复多次的主要内容,如果未能解决你的问题,请参考以下文章

fscanf (filepointer, "%d\n%lg\n", sig_length, sample_rate);如何解释它?

关于腾讯云短信接口的sig字段,sha256加密问题,nodejs

文本扩展器的Mac Lover Sig

如何获得积分的上限?

最后一个.fmAPI Url生成器

如何从 ctrl“sigs.k8s.io/controller-runtime”模拟 zap 记录器?