返回

RTCPeerConnection 配置详解之 iceTransportPolicy

前端

RTCConfiguration.iceTransportPolicy 定义了 ICE 候选策略,浏览器使用该策略向应用程序显示允许的候选项,只有这些候选项将用于连接检查。

在浏览器中,与 RTCPeerConnection 中的其他配置不同,iceTransportPolicy 有三个可能的值,它们是:

  • all :浏览器将提供所有网络传输类型。
  • relay :浏览器将只提供服务器反射传输。
  • none :浏览器将不提供任何传输。

默认情况下,iceTransportPolicy 的值设置为 all

以下是 RTCPeerConnection.iceTransportPolicy 的一些示例:

  • 允许所有网络传输类型:
const configuration = {
  iceTransportPolicy: "all"
};

const peerConnection = new RTCPeerConnection(configuration);
  • 仅允许服务器反射传输:
const configuration = {
  iceTransportPolicy: "relay"
};

const peerConnection = new RTCPeerConnection(configuration);
  • 不提供任何传输:
const configuration = {
  iceTransportPolicy: "none"
};

const peerConnection = new RTCPeerConnection(configuration);

其他注意事项

  • iceTransportPolicy 配置只能在创建 RTCPeerConnection 时设置。之后,无法更改该配置。
  • iceTransportPolicy 配置仅适用于新的 ICE 候选者。它不会影响已经存在的候选者。
  • iceTransportPolicy 配置可能会受到浏览器的限制。例如,某些浏览器可能不支持服务器反射传输。

结论

RTCPeerConnection.iceTransportPolicy 配置是一个重要的配置,它可以用来控制浏览器向应用程序显示的 ICE 候选项。通过仔细选择 iceTransportPolicy 的值,可以优化 WebRTC 连接的性能和可靠性。