强制UDP用于Webrtc对等连接

时间:2019-04-09 08:20:24

标签: javascript webrtc rtcdatachannel rtcpeerconnection

我正在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线路?

1 个答案:

答案 0 :(得分:0)

在调用a=candidate TCP并发送给对等方之前,您只需删除包含setLocalDecription行的行即可。

但是,默认情况下,chrome支持ICE滴流以加快连接设置过程,并且不需要在发送SDP之前收集所有候选对象。因此,您可以在生成后立即设置SDP,并轻松过滤掉不需要的候选者,然后再将其发送到onicecandidate回调中的其他对等方。

rtcPeerConnection.onicecandidate = event => {
      if (event.candidate && event.candidate.protocol !== 'tcp') {
         // send to peer
      }
}