如何知道 Chromium 何时停止发出网络请求?

How to know when Chromium has stopped making network requests?

我们正在处理 HTML5 游戏,我们需要知道游戏何时完全下载完其所有资产。在 HTML5 的情况下,这与页面完成加载时不同。页面加载完成后,将下载游戏的资产。

我们在本机应用程序中 运行 这些游戏,我们在其中嵌入了 Crosswalk 网络视图。 Crosswalk 项目基于 Chromium 项目,因此适用于 Chromium 的东西很可能也适用于 Crosswalk。我如何知道浏览器何时完全停止发出网络请求并基本上停止所有与互联网的通信?

Google Chrome 有一个很棒的插件叫做 Live Http Headers。它也适用于 Firefox。

您可以获得 Google Chrome here 的插件。

它将捕获您的浏览器发出的每个请求并向您显示 headers 和状态代码:

如果您使用 Linux,您还可以使用 nethogs 按应用程序监控网络使用情况,但不如 Live Http Headers.

详细
apt-get update
apt-get install nethogs
nethogs eth0

您还可以监控端口 80 上的流量:

tshark -i eth0 -f "port 80"

或者,您可以使用 Wireshark 而不是命令行版本,您可以获得 here 它适用于 Windows、Mac 和 Linux。

这是 Wireshark 中的示例过滤器:

如您在评论中所要求的,一个更永久的解决方案是将设备直接与您的设备 运行 应用程序并使用 tcpdump:

sudo tcpdump -A -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'

这将显示获取、响应和有效负载,并且应该是用于调试的大量信息。添加 -i 选项以指定接口。在两个网络接口卡之间共享其网络连接的计算机将非常适合这个。

希望对您有所帮助。

--lillypad