这听起来像是一个非常基本的问题,但我需要确认
我问这个是因为我知道浏览器对并行连接的数量有限制(我认为他们谈论TCP),并且UDP连接可能不受限制。
答案 0 :(得分:85)
它可以使用任何一个。默认情况下,优先级为UDP,但根据连接的对等体之间的防火墙,它可能只能与TCP连接。您可以使用Wireshark捕获数据包并验证是否正在使用TCP或UDP。在Chrome中,您还可以转到googActiveConnection
,查看所选候选人的详细信息(chrome://webrtc-internals
。
“可靠性模式”可能是指DataChannel的可靠性模式,可配置为以可靠或不可靠的模式运行。 DTLS是指当前可选的,但soon to be default method交换加密密钥(另一个不推荐使用的模式是SDES)。 Firefox仅支持DTLS,因此对于浏览器互操作,您目前需要enable it in Chrome。
RTCPeerConnection(媒体)将使用TCP或UDP,而DataChannel使用SCTP。 Firefox使用的SCTP实现是在UDP之上实现的:https://code.google.com/p/sctp-refimpl/。
在添加addIceCandidate
之前,可以过滤掉TCP或UDP ICE候选者。一般来说,你不应该试图强制使用传输,因为WebRTC只会“做正确的事情”。浏览器不限制WebRTC使用的TCP连接数超出RTCPeerConnection或DataChannel的任何限制(即,如果您可以有10个PeerConnections,则每个都可以使用TCP而没有任何问题)。