Javascript RTCPeerconnection.onicecandidate函数?

Javascript RTCPeerconnection.onicecandidate函数?,javascript,webrtc,Javascript,Webrtc,下面我给出了关于RTPeerConnection.onicecandidate的摘录,并希望就我的理解提出两个问题,如果我的概念正确与否,需要帮助。对我来说有点复杂 RTCPeerConnection.onicecandidate属性是一个EventHandler,它 指定在icecandidate事件发生时要调用的函数 在RTPeerConnection实例上。每当局部结冰时就会发生这种情况 代理需要通过 信令服务器 我对以下代码的解释 1.这是否意味着RTCPeerconnection.on

下面我给出了关于RTPeerConnection.onicecandidate的摘录,并希望就我的理解提出两个问题,如果我的概念正确与否,需要帮助。对我来说有点复杂

RTCPeerConnection.onicecandidate属性是一个EventHandler,它 指定在icecandidate事件发生时要调用的函数 在RTPeerConnection实例上。每当局部结冰时就会发生这种情况 代理需要通过 信令服务器

我对以下代码的解释

1.这是否意味着RTCPeerconnection.onicecandidate在ICE的帮助下获取其本地候选ICE时自动调用下面的匿名javascript函数。同时,匿名功能帮助通过信号服务器向远程对等方发送Ice候选

2.参考以下代码:事件处理程序rtpeerconnection.onicecandidate中的参数event是否包含有关SDP信息的详细信息,例如媒体类型和编解码器,方法候选者提供来自Ice候选者的信息(即ip地址和端口号)。进一步合并到sdp中并传递给远程对等方

pc=new RTCPeerConnection();    
    pc.onicecandidate = function(event) {
          if (event.candidate) {
            // Send the candidate to the remote peer
          } else {
            // All ICE candidates have been sent
          }
        }
  • 到达新候选对象时,将调用RTCPeerconnection.onicecandidate。EventHandler将获得一个事件参数,其中包含候选对象的信息。您需要自己将参数发送到信号服务器
  • 2.rtpeerConnection.onicecandidate的参数不包含SDP的任何详细信息。仅包含IP信息。详情如下:

    candidate:"candidate:2944045467 1 udp 2122260223 172.25.34.14 58967 typ host generation 0 ufrag K3mY network-id 1"
    component:1
    foundation:"2944045467"
    generation:"0"
    ip:"172.25.34.14"
    network-id:"1"
    port:58967
    priority:2122260223
    protocol:"udp"
    sdpMLineIndex:0
    sdpMid:"audio"
    toJSON:ƒ()
    type:"host"
    ufrag:"K3mY"
    usernameFragment:"K3mY"
    
    1.这是否意味着RTCPeerconnection.onicecandidate会自动调用下面的匿名javascript函数

    对。根据:

    onicecandidate
    类型的
    EventHandler

    此事件的事件类型 处理程序是
    ICE候选

    因此,当新的候选Ice可用时,将自动调用处理程序

    2.参考以下代码:来自事件处理程序RTCPeerconnection.onicecandidate的参数事件是否包含有关SDP的详细信息 信息

    没有SDP信息。只需
    候选人
    网址

    根据,这是一个
    RTPeerConnectionICEvent

    interface RTCPeerConnectionIceEvent : Event {
        readonly attribute RTCIceCandidate? candidate;
        readonly attribute DOMString?       url;
    };
    

    好吧,我不会太乐意分享一个ice信息。:)请问SDP是如何发送到其他peerwell的,您可以阅读本文并自行构建信号服务器。