WebRTC视频流错误 - scaledrone

时间:2018-05-22 20:36:41

标签: webrtc

有谁知道过去一两个月内WebRTC发生了哪些变化? 我有一个WebRTC视频网络应用程序,大约两个月前运行良好,现在随机停止工作。我使用scaledrone进行单挑

这是我遵循的教程: https://www.scaledrone.com/blog/posts/webrtc-tutorial-simple-video-chat

我得到的唯一错误就是doesen对我说了什么:

$()

演示可以在这里看到: enter link description here

任何想法都将不胜感激!

1 个答案:

答案 0 :(得分:1)

它是RTCPeerConnection.signalingState。可能的值为:

  • 稳定-初始状态。没有正在进行的SDP报价/答案交换
  • have-local-offer-连接的本地端在本地 应用了SDP报价
  • 具有远程报价-连接的远程端具有本地 应用了SDP报价
  • have-local-pranswer-远程SDP报价已应用,并且SDP pranswer本地应用
  • have-remote-pranswer-已应用本地SDP,并且已安装SDP pranswer远程应用
  • 已关闭-连接已关闭

您在下面添加的图片中看到了WebRTC谈判过程。 enter image description here

DOMException:无法设置本地答案sdp:处于错误状态:kStable 表示“您的浏览器”未获得任何SDP提供/答案,如上图所示。这可能取决于浏览器与scaledrone WebRTC-Wrapper实现的不兼容性,或者取决于某些STUN问题,这些问题也涉及Scaledron实现。

经常有报道说,第一次使用“新”通道ID只能工作一次,此后对于请求的身份就再也不能工作了。

我们假设在 身份声明请求过程 中,存在一个用于已认证身份(目标对等身份值的“计数”(操作队列) >)极其不稳定-请参见-https://www.w3.org/TR/webrtc/#dom-rtcconfiguration-peeridentity

function startWebRTC(isOfferer) 
{
  pc = new RTCPeerConnection(configuration);
    var identity = pc.peerIdentity;
    ...
    ...
    if (identity) 
    {
          alert("Identity of the peer: idp='" 
                 + identity.idp + "'; assertion='" 
                 + identity.name + "'");
    }
    else 
    {
          alert("Identity of the peer has not been verified");
    }
    ...
    ...
}

其中“配置”为:

const configuration = {
  iceServers: [{
    urls: 'stun:stun.l.google.com:19302'
  }]
};

Debugger

https://www.w3.org/TR/webrtc/ 4.4.1.2使操作入队: “ ... RTCPeerConnection对象具有操作队列[[Operations]],该队列确保仅同时执行队列中的一个异步操作。如果在仍未解决返回的前一个承诺的情况下进行了后续调用,它们将被添加到队列中,并在所有先前的调用已完成执行并且它们的诺言已完成时执行...” ...请参阅后续步骤...

但是,如果没有直接的分析工具,要进行评估非常困难。 WebRTC的scaledrone包装器实现非常敏感

我们将必须检查RTCPeerConnection.iceConnectionState,RTCPeerConnection.peerIdentity,RTCPeerConnection.localDescription,RTCPeerConnection.remoteDescription,RTCPeerConnection.signalingState等...。

我对使用Firefox-Quantum-65.0 x64和Chrome-71.0的nodejs websockets进行了一些比较测试,您可以在这里看到它们: Firefox enter image description here

您会发现其中有很大的不同。 最好 Axel