You need to enable JavaScript to run this app.
导航
使用 TURN 服务提升 P2P 通话的联通率
最近更新时间:2024.05.16 14:24:27首次发布时间:2024.05.16 14:24:27

在发起 WebRTC P2P 通信时,复杂的网络环境经常会导致建联失败。WTN 提供了 TURN(Traversal Using Relays around NAT)中转服务,帮助你在 WebRTC P2P 建联时,提升建联成功率。

备注:关于 TURN 协议,参看:

参考以下文档,使用 WTN 提供的 TURN 中转服务。

前提条件

  • 已开通 WTN 产品。参考 开通 WTN 产品
  • 已创建应用,获取 AppIDAppKey。参考 控制台
  • 已联系 WTN 技术支持人员,开通 TURN 服务。

接入步骤

仅需两步即可接入 WTN 提供的 TURN 中转服务。

步骤 1:获取 TURN 服务信息

调用 WTN 接口,以获取相关信息。参看 获取 TURN 服务信息

步骤 2:在 RTCPeerConnection 实例中添加中继信息

在发起 WebRTC P2P 连接时,你应在 RTCPeerConnection 的配置字段中,传入刚刚获取的 TURN 服务信息。

const configuration = {
    iceServers: [
    ...
    // 获取的 TURN 服务信息
    {
        "username": "xxxxxx1",
        "credential": "yyyyyy1",
        "urls": [
            "turn:1.1.1.1:3478?transport=udp",
            "turn:1.1.1.1:3479?transport=tcp"
        ]
    }
    ...
    ]
}
const peerConnection = new RTCPeerConnection(configuration);

使用以上配置时,P2P 通信客户端会根据网络情况自行选择使用 WTN 的 TURN 服务中转,或 P2P 直连。

如果你希望强制使用 WTN 提供的 TURN 服务中转,你还可以在上述代码中,添加以下配置:

const configuration = {
    ...
    iceTransportPolicy: "relay",
    ...
}

参考文档:

接入费用

WTN 仅会在实际流量使用了 WTN 提供的 TURN 服务时,产生费用。关于具体资费,请联系 WTN 技术支持人员。