我很难理解onicecandidate函数的puropse。 候选冰如何帮助建立对等连接。谁最先发送候选冰?peer_connection.onicecandidate()函数做什么?什么是ice_event?
0
A
回答
1
- 在引擎盖下,webrtc根据可用的网络连接收集本地候选人以及通过JS API传递给它的ice服务器列表。
- 一旦冰候选人准备好了,它就会通过onicecandidate API提供给JS层。
- 如果您使用滴流ICE,则可以通过信号路径立即将候选人发送给远程对等体。否则,请等待最后一个(空)候选人,按优先顺序排列,将它们添加到offer/answer sdp,并通过信号路径发送offer/answer。这通常由浏览器自动完成。
- 你可能看这里的握手规格: https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-09
1
对端设备将不能够将流媒体使用它自己的私有IP其他同行。所以我们需要NAT穿越服务器(ICE服务器)将私有IP映射到公共IP。
因此,客户端应用程序应该向ICE服务器请求他自己的ICE候选人“哪些是公共ID”。
首先呼叫者要求他的公共IP(ICE候选者)并通过信令服务器将其发送给另一个对等者。
当其他人收到候选人时,他还向ICE服务器询问了他自己的候选人,并将其发回给主叫方。
当两个对等体彼此拥有对方候选人(公共IP)时,他们可以进行P2P流传输。
ICE问题
20%,ICE服务器 - STUN协议将无法提供公共IP。因为两个媒体设备位于对称NAT后面!或者防火墙阻止P2P流量!
在这种情况下,P2P流将不可靠! 为了解决这些问题,我们必须使用外部媒体转发服务器 - TURN服务器是由ICE服务器
0
这里所支持的协议是一个例子:
connection.onicecandidate = function(newRTCPeerConnectionIceEvent) {
// a new candidate has been created
var newRTCIceCandidate = newRTCPeerConnectionIceEvent.candidate;
// could send this to the remote peer
};
候选人代表的目的地(发送或接收)媒体流和在SDP将看起来像这样:
a=candidate:1 1 UDP 2130706431 10.0.1.1 8998 typ host
相关问题
- 1. 那么函数SDL_FreeSurface是做什么的?
- 2. 什么“?”做?什么是__FILE__?
- 3. 什么是setDetailItem:做什么?
- 4. Wince - CreateProcess函数做什么
- 5. 这个函数做什么?
- 6. PHP函数@ $ _做什么?
- 7. MATLAB的bitxor函数是做什么的?
- 8. OpenCV的cvWaitKey()函数是做什么的?
- 9. 什么是showErros函数做jQuery验证
- 10. 什么是延迟()函数做
- 11. Wordpress“_e()”函数是做什么的?
- 12. 这里做的it()函数是什么?
- 13. 这个函数做什么?什么是奇怪的语法?
- 14. 什么是打开:函数在JavaScript中做什么?
- 15. 做默认析构函数做什么?
- 16. 什么把一个'|'在函数参数上做什么?
- 17. 这是做什么
- 18. 什么是random.random做
- 19. page.driver.reset是什么!做?
- 20. 什么是“GCMRegsistrar.register”做
- 21. 是什么[popViewControllerAnimated];做?
- 22. 什么是流量?什么是`initialize`在做什么?
- 23. 这是什么:main:for(...){...}在做什么?
- 24. 什么是string.indexOf(“*。”)在Javascript中做什么?
- 25. 这是什么“加入”在做什么?
- 26. 什么是QString :: toUtf8在做什么?
- 27. 做什么:scope“provided”是什么意思?
- 28. 什么是“sed s _。*/_”在做什么?
- 29. 究竟是什么耙db:migrate做什么?
- 30. 什么是outData.writeInt()在Java中做什么?