我在Chrome中使用webrtc RtcPeerConnection API。
我的本地 SDP 报价是这样的
a=candidate:0 1 UDP 2122252543 10.100.49.26 59882 typ host
a=candidate:1 1 TCP 2105524479 10.100.49.26 9 typ host tcptype active
我认为如果UDP不起作用,它将尝试TCP。
但!我不希望TCP和TCP连接会导致异常,如何从本地 SDP 产品/服务中删除 TCP 线路?
您可以在调用setLocalDecription
并发送到对等方之前删除包含a=candidate TCP
行的行。
但是,chrome 默认支持 ICE 涓流以加快连接设置过程,并且不需要在发送 SDP 之前收集所有候选项。因此,您可以在生成后立即设置 SDP,并在onicecandidate
回调中将它们发送给其他对等体之前轻松过滤掉不需要的候选项。
rtcPeerConnection.onicecandidate = event => {
if (event.candidate && event.candidate.protocol !== 'tcp') {
// send to peer
}
}