WebRTC onicecandidate触发21次。可以吗?

WebRTC onicecandidate触发21次。可以吗?,webrtc,Webrtc,我正在学习WebRTC。在教程中,我编写了一段代码: var pc = new RTCPeerConnection({'iceServers': [{ 'url': 'stun:stun.l.google.com:19302'}]}); pc.onicecandidate = function (evnt) { console.log('GOT ICE CANDIDATE'); socket.emit('msg', { by: currentId, to: id, ice: evnt.c

我正在学习WebRTC。在教程中,我编写了一段代码:

var pc = new RTCPeerConnection({'iceServers': [{ 'url': 'stun:stun.l.google.com:19302'}]});
pc.onicecandidate = function (evnt) {
    console.log('GOT ICE CANDIDATE');
socket.emit('msg', { by: currentId, to: id, ice: evnt.candidate, type: 'ice' });
    iceCandidate = evnt.candidate;
};
pc.onaddstream = function (evnt) {
        console.log('Received new stream');
        remoteStream = evnt.stream;
};
onicecandidate发射了21次。所以套接字发送消息21次。我很困惑,我有21个ICE候选者,而套接字此时发送了21次消息,这可以吗?非常感谢。 这是候选人名单

 GOT ICE CANDIDATE:  RTCIceCandidate {sdpMLineIndex: 0, sdpMid: "audio", candidate: "candidate:3612426851 1 udp 2122260223 10.5.123.27 51569 typ host generation 0"}
conversation.client.controller.js:14 GOT ICE CANDIDATE:  RTCIceCandidate {sdpMLineIndex: 0, sdpMid: "audio", candidate: "candidate:3612426851 2 udp 2122260223 10.5.123.27 51569 typ host generation 0"}
conversation.client.controller.js:14 GOT ICE CANDIDATE:  RTCIceCandidate {sdpMLineIndex: 0, sdpMid: "audio", candidate: "candidate:2541423865 1 udp 2122129151 169.254.22.161 51570 typ host generation 0"}
conversation.client.controller.js:14 GOT ICE CANDIDATE:  RTCIceCandidate {sdpMLineIndex: 0, sdpMid: "audio", candidate: "candidate:2541423865 2 udp 2122129151 169.254.22.161 51570 typ host generation 0"}
conversation.client.controller.js:14 GOT ICE CANDIDATE:  RTCIceCandidate {sdpMLineIndex: 1, sdpMid: "video", candidate: "candidate:3612426851 1 udp 2122260223 10.5.123.27 51569 typ host generation 0"}
conversation.client.controller.js:14 GOT ICE CANDIDATE:  RTCIceCandidate {sdpMLineIndex: 1, sdpMid: "video", candidate: "candidate:3612426851 2 udp 2122260223 10.5.123.27 51569 typ host generation 0"}
conversation.client.controller.js:14 GOT ICE CANDIDATE:  RTCIceCandidate {sdpMLineIndex: 1, sdpMid: "video", candidate: "candidate:2541423865 1 udp 2122129151 169.254.22.161 51570 typ host generation 0"}
conversation.client.controller.js:14 GOT ICE CANDIDATE:  RTCIceCandidate {sdpMLineIndex: 1, sdpMid: "video", candidate: "candidate:2541423865 2 udp 2122129151 169.254.22.161 51570 typ host generation 0"}
conversation.client.controller.js:14 GOT ICE CANDIDATE:  RTCIceCandidate {sdpMLineIndex: 0, sdpMid: "audio", candidate: "candidate:2580725395 1 tcp 1518280447 10.5.123.27 0 typ host tcptype active generation 0"}
conversation.client.controller.js:14 GOT ICE CANDIDATE:  RTCIceCandidate {sdpMLineIndex: 0, sdpMid: "audio", candidate: "candidate:2580725395 2 tcp 1518280447 10.5.123.27 0 typ host tcptype active generation 0"}
conversation.client.controller.js:14 GOT ICE CANDIDATE:  RTCIceCandidate {sdpMLineIndex: 0, sdpMid: "audio", candidate: "candidate:3656970249 1 tcp 1518149375 169.254.22.161 0 typ host tcptype active generation 0"}
conversation.client.controller.js:14 GOT ICE CANDIDATE:  RTCIceCandidate {sdpMLineIndex: 0, sdpMid: "audio", candidate: "candidate:3656970249 2 tcp 1518149375 169.254.22.161 0 typ host tcptype active generation 0"}
conversation.client.controller.js:14 GOT ICE CANDIDATE:  RTCIceCandidate {sdpMLineIndex: 1, sdpMid: "video", candidate: "candidate:2580725395 1 tcp 1518280447 10.5.123.27 0 typ host tcptype active generation 0"}
conversation.client.controller.js:14 GOT ICE CANDIDATE:  RTCIceCandidate {sdpMLineIndex: 1, sdpMid: "video", candidate: "candidate:2580725395 2 tcp 1518280447 10.5.123.27 0 typ host tcptype active generation 0"}
conversation.client.controller.js:14 GOT ICE CANDIDATE:  RTCIceCandidate {sdpMLineIndex: 1, sdpMid: "video", candidate: "candidate:3656970249 1 tcp 1518149375 169.254.22.161 0 typ host tcptype active generation 0"}
conversation.client.controller.js:14 GOT ICE CANDIDATE:  RTCIceCandidate {sdpMLineIndex: 1, sdpMid: "video", candidate: "candidate:3656970249 2 tcp 1518149375 169.254.22.161 0 typ host tcptype active generation 0"}
conversation.client.controller.js:14 GOT ICE CANDIDATE:  RTCIceCandidate {sdpMLineIndex: 0, sdpMid: "audio", candidate: "candidate:2114899382 1 udp 1686052607 213.230.83.5… srflx raddr 10.5.123.27 rport 51569 generation 0"}
conversation.client.controller.js:14 GOT ICE CANDIDATE:  RTCIceCandidate {sdpMLineIndex: 0, sdpMid: "audio", candidate: "candidate:2114899382 2 udp 1686052607 213.230.83.5… srflx raddr 10.5.123.27 rport 51569 generation 0"}
conversation.client.controller.js:14 GOT ICE CANDIDATE:  RTCIceCandidate {sdpMLineIndex: 1, sdpMid: "video", candidate: "candidate:2114899382 1 udp 1686052607 213.230.83.5… srflx raddr 10.5.123.27 rport 51569 generation 0"}
conversation.client.controller.js:14 GOT ICE CANDIDATE:  RTCIceCandidate {sdpMLineIndex: 1, sdpMid: "video", candidate: "candidate:2114899382 2 udp 1686052607 213.230.83.5… srflx raddr 10.5.123.27 rport 51569 generation 0"}
conversation.client.controller.js:14 GOT ICE CANDIDATE:  null

是的,没问题。您的候选者包含用于私有和公共IP以及音频和视频的UDP和TCP,以及一些用于音频和视频的UDP srflx。全部用于Rtp和Rtcp。(您可能应该隐藏您的公共IP信息…)。你认为具体会有什么问题?本杰明·特伦特,谢谢你的回答。我不是故意的,我只是从来没有和ICE和WebRTC合作过,所以我只希望有一个候选人。我不知道会有这么多。但谢谢你,我知道。关于隐藏公共IP:如何隐藏我的公共IP。你有什么建议可以在帖子中隐藏:)不要在候选人身上本杰明·特伦特,谢谢