如何进行网络跟踪或调试WebRTC点对点连接

52

我想知道是否有工具或方法可以查看WebRTC点对点连接的底层情况?

以视频聊天应用为例,如果我正在使用WebRTC实现视频聊天,所有的连接(Offer、Answer、ICE)都已经建立,但是我无法看到视频流,我该如何调试并查看这两个对等端之间是否发送任何数据包或其他内容。

3个回答

60

如果您使用的是Chrome浏览器,您可以导航至chrome://webrtc-internals。这将显示有关连接的提供、应答、ICE状态以及统计信息(一旦建立连接)。

如需进行更深入的调试,您可以通过以下标志启动Chrome并查看候选者之间所有STUN ping的日志:

--enable-logging --v=4

您的日志将存储在用户数据目录下的chrome_debug.log文件中:http://dev.chromium.org/user-experience/user-data-directory


18

有多种方法可以调试底层连接状态。如果您使用的是Web应用程序,您可以导航到浏览器统计信息。对于Chrome,chrome://webrtc-internalsAPI结构)。这个线程也可能会帮助到您(使用peerJs)。对于Firefox,请浏览about:webrtc

对于本机应用程序,例如Windows,您需要从编译器本身获取日志。在MS Visual Studio 2015中,尝试 Debug > Attach Process > 您的本机应用程序PID,Debug>windows>output。


2

视频无法流畅播放可能有几个原因。

  1. 您的STUN服务器是否响应?要检查这一点,请在控制台中记录您接收到的ICE候选项,然后检查它们的类型。如果您的STUN服务器正在响应,则会看到类型为srflx而不仅仅是“主机”类型的ICE候选项。您也可以在chrome://webrtc-internals中查找它们。

  2. 当RTCPeerConnection对象回调onaddstream时,您是否将正确的src blob附加到视频元素上?

  3. 您必须从JavaScript显式地调用video元素上的.play()方法以启动远程视频流。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接