下面我给出了此链接关于RTCPeerConnection.onicecandidate的摘录,并希望根据我的理解提出两个问题,如果我的概念正确与否,需要帮助。对我来说有点复杂
RTCPeerConnection.onicecandidate属性是一个EventHandler,它指定当icecandidate事件发生在RTCPeerConnection实例上时要调用的函数。每当本地ICE代理需要通过信令服务器向另一个对等方传递消息时,就会发生这种情况。
我对以下代码的解释
1.这是否意味着RTCPeerconnection.onicecandidate在得到它的Local时,在ICE的帮助下自动调用下面的匿名javascript函数。同时,匿名功能帮助通过信号服务器向远程对等服务器提供冰候选服务器。
2.参考以下代码:是否参数事件来自事件处理程序RTCPeerconnection.onicecandidate包含有关SDP信息的详细信息,如媒体类型和编解码器,以及候选提供的信息(即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
}
}发布于 2018-05-25 01:32:31
1.这是否意味着RTCPeerconnection.onicecandidate自动调用下面的匿名javascript函数
是。根据rtcpeerconnection-onicecandidate
onicecandidate,EventHandler型 此事件处理程序的事件类型为icecandidate。
因此,当新的Ice候选程序可用时,将自动调用处理程序。
2.参考以下代码:事件处理程序RTCPeerconnection.onicecandidate中的参数事件是否包含有关SDP信息的详细信息?
没有SDP信息。只有candidate和url。
根据rtcpeerconnectioniceevent,它是一个RTCPeerConnectionIceEvent
interface RTCPeerConnectionIceEvent : Event {
readonly attribute RTCIceCandidate? candidate;
readonly attribute DOMString? url;
};发布于 2018-05-24 14:06:18
2. RTCPeerconnection.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"https://stackoverflow.com/questions/50509149
复制相似问题