检查WebRTC对等连接是否通过TURN服务器

时间:2018-02-28 10:28:19

标签: webrtc turn

我有一个使用HTML5 + WebRTC完美运行的视频会议应用程序。 STUN / TURN服务器由第三方公司提供,该公司不是免费的。您可能知道,WebRTC在浏览器之间进行了一些信息交换之后,它选择了连接两个对等方的最佳方式,如果可能,它使用不涉及TURN服务器的直接连接。

问题是,是否可以使用直接连接或中间TURN服务器检测RTCPeerConnection何时建立?

1 个答案:

答案 0 :(得分:0)

此代码段适用于Chrome浏览器

    const stats = await pc.getStats()
    let selectedLocalCandidate
    for (const {type, state, localCandidateId} of stats.values())
        if (type === 'candidate-pair' && state === 'succeeded' && localCandidateId) {
            selectedLocalCandidate = localCandidateId
            break
        }
    return !!selectedLocalCandidate && stats.get(selectedLocalCandidate)?.candidateType === 'relay')

想法是(通过pc.getStats())迭代统计信息中的每个报告,查找选定的ICE候选对,检查本地候选的ID,并通过查看候选者的ID来确定连接是否使用TURN。类型。