Chrome网络视图中的“缺少帧”选项卡

时间:2019-05-30 14:07:38

标签: websocket google-chrome-devtools

我正在多台计算机上运行Chrome 74.0.x,但是在其中任何一台计算机的网络视图中都找不到“框架”标签。我知道“框架”选项卡中的数据汇总的问题,但是我根本没有“框架”选项卡。

我可以看到“标头,消息和时间”的选项卡,虽然不错,但工作正常,但是我试图查看websocket的Ping(我读过的内容将在Frames中)。

我在这里想念什么?

1 个答案:

答案 0 :(得分:0)

回答我自己的问题。 TL / DR:我想我要寻找的东西在Chrome中不存在(至少已经存在了)。而且,我现在将以乒乓球的形式发送“正常”消息。

出现此问题的原因是,如果websocket处于非活动状态,Heroku(我的主机)将在50秒左右内超时。乒乓球似乎是为此而设计的。

但是,尚不清楚网络套接字ping / pong的定义是否明确,更不用说由工具支持了。查看此讨论:Sending websocket ping/pong frame from browser

有些参考文献解释了应该如何实现乒乓/乒乓球控制代码。请参见https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_servers#Pings_and_Pongs_The_Heartbeat_of_WebSockets上的“ Pings and Pongs:WebSockets的心跳”。并且,RFC6455(https://tools.ietf.org/html/rfc6455#section-5.5.2)指出“ Ping帧可以用作保持活动状态或用作验证远程端点仍在响应的手段”。

请注意,我可以ping操作工作,例如,我正在将它们发送给客户端(Chrome),Heroku不会超时,并且客户端还在运行。但是,我看不到浏览器端的任何活动。这很自在,这让我很烦。

似乎已经删除的向下追溯功能(chrome:// net-internals)已删除。显然,作为一种安慰奖,现在有了一个内置工具(chrome:// net-export),该工具可以捕获网络活动,然后是一个支持站点(https://netlog-viewer.appspot.com/#import),可以对这些日志进行分析(痛苦)。它们显示了chrome知道的来自许多实体的流量,包括websocket消息,但令人惊讶的是没有显示我正在发送的任何ping。

在短期内,我将放弃使用ping / pong控制代码的想法,而只是将标准消息用作模拟保持活动的形式,因为它们可以工作,并且我可以在Chrome中看到它们。

任何能帮助我更好地理解这一点的评论将不胜感激。