从 webrtc getStats api 数据中判断是否使用 TURN
Determine if TURN is used from webrtc getStats api data
我在 android 上使用 WebRTC getStats() API 来获取统计信息,我正在获取我需要的大部分数据。但是我找不到数据来确定是否使用了 TURN。
请检查示例 json 数据。 https://pastebin.com/v89aaL2H
private void getStats() {
if (peerConnection == null || isError) {
return;
}
boolean success = peerConnection.getStats(reports -> events.onPeerConnectionStatsReady(reports), null);
}
您似乎在使用旧版统计信息。那么,让我根据遗留统计数据回答您的问题 -
在您的旧版统计信息中,googCandidatePair
列表表示当前 WebRTC 会话的 ICE 候选对(本地和远程 ICE 候选对)。如果您查看 googCandidatePair
列表,您会发现传输当前正在使用的候选对(googCandidatePair.googActiveConnection
在这种情况下为真)。
现在您可以查看此活动 googCandidatePair
的本地和远程候选类型(googLocalCandidateType
和 googRemoteCandidateType
),以了解您在传输中使用的到底是什么。
例如,从示例统计信息转储中 - 您仅使用了眩晕。
注意:您可能也有兴趣阅读 Chrome Standard getStats() Migration Guide
我在 android 上使用 WebRTC getStats() API 来获取统计信息,我正在获取我需要的大部分数据。但是我找不到数据来确定是否使用了 TURN。
请检查示例 json 数据。 https://pastebin.com/v89aaL2H
private void getStats() {
if (peerConnection == null || isError) {
return;
}
boolean success = peerConnection.getStats(reports -> events.onPeerConnectionStatsReady(reports), null);
}
您似乎在使用旧版统计信息。那么,让我根据遗留统计数据回答您的问题 -
在您的旧版统计信息中,googCandidatePair
列表表示当前 WebRTC 会话的 ICE 候选对(本地和远程 ICE 候选对)。如果您查看 googCandidatePair
列表,您会发现传输当前正在使用的候选对(googCandidatePair.googActiveConnection
在这种情况下为真)。
现在您可以查看此活动 googCandidatePair
的本地和远程候选类型(googLocalCandidateType
和 googRemoteCandidateType
),以了解您在传输中使用的到底是什么。
例如,从示例统计信息转储中 - 您仅使用了眩晕。
注意:您可能也有兴趣阅读 Chrome Standard getStats() Migration Guide