如何使用Firebug或其他方式查看WS / WSS Websocket请求内容?


68

有没有办法查看Websocket流量?

在初始握手中仅可见Websocket标头。

响应后一切都消失了:

Connection  Upgrade
Sec-WebSocket-Accept    EQqklpK6bzlgAAOL2EFX/nx8bEI=
Upgrade WebSocket

我已经尝试过Firebug,Live Headers和Fiddler2来跟踪交换,但它们都停止在那里记录。


Fiddler更易于用于调试WebSocket。我最近在CodeProject上写了一篇文章,向您展示了如何使用Fiddler调试/检查WebSocket通信。codeproject.com/Articles/718660/...
engineforce

Answers:


70

尝试使用Chrome的开发人员工具,

  1. 点击“网络”标签
  2. 使用底部的过滤器仅显示WebSocket连接),
  3. 选择所需的Websocket连接,
  4. 请注意,右侧有“标题”,“预览”,“响应”等子标签,
  5. 一旦数据开始流动,将出现“ WebSocket框架”子选项卡。记录了任一方向上的所有数据。非常丰富。

1
我在Google IO 2012的最新Canary版本中看到了这一点。非常酷!
Stevko 2012年

1
对于调试服务器端,我发现github.com/kanaka/websockify提供了大量帮助。我可以在Python代码中的任何位置插入自己的调试信息。它的基本功能是允许您隧道传输到任何TCP服务,以进一步提高调试的乐趣。
丹尼尔·希尔兹

左侧是“名称”列,其中包含各种图像,依此类推,如果您过滤websocket,则会看到套接字。当然,如果该页面上存在它。
Dariux

我将引用用户评论(stackoverflow.com/questions/5751495/…),因为它可能会帮助其他人:“ Chrome开发工具在面板上存在UI错误,这是关于stackoverflow.com/questions/44533111/…的工作”
baptx

35

从2014年9月3日开始,似乎可以在FireBug中进行WebSocket调试:https : //getfirebug.com/wiki/index.php/Firebug_2.0_Roadmap#Feature_Overview。但是没有提到发布日期。


更新2019-09-19

请参阅这篇有趣的Mozilla Hacks文章


更新2017-11-24 Firefox中的插件系统已更改。Websocket Monitor在撰写本文时不可用:(


更新2016-04-06

终于可以使用Firefox开发工具的Websocket Monitor插件在Firefox中进行WebSocket调试!它是由Firebug开发团队开发的,其资源可以在这里找到。


更新2015-10-28

Firefox开发人员工具产品经理Jeff Griffiths:

平台支持在今天晚上进行,并且正在这里开发原型附件:https : //github.com/firebug/websocket-monitor

https://twitter.com/canuckistani/status/659399140590284800

Firefox Bugzilla上的相关功能请求:https ://bugzilla.mozilla.org/show_bug.cgi ? id = 1203802


截至2015-04-08更新

Fiddler 4.5现在可以本地检查WebSocket流量。


更新2014-09-11

关于此评论对Firebug问题跟踪器的:

目前,Firebug团队正在努力将Firebug与DevTools集成在一起,因此它不在人们的视野中。这意味着它将能够重用内置DevTools提供的功能。因此,您可以关注https://bugzil.la/885508


1
与Firefox 57或更高版本不兼容。
TweeZz


20

当前版本的Fiddler可以很好地与WebSocket通信配合使用。参见http://blogs.msdn.com/b/fiddler/archive/2011/11/22/fiddler-and-websockets.aspx

请参阅http://blogs.telerik.com/fiddler/posts/13-06-04/what-s-new-in-fiddler-2-4-4-5了解如何将数据放在Log标签。

要在“ WebSockets”标签上显示数据,

WebSockets选项卡

您需要一个扩展程序(该程序将在2.5版中内置)。现在,您可以获取当前位。只需提取ZIP并将两个文件放入\Fiddler2\Scripts文件夹中,然后重新启动Fiddler。如果在Fiddler的WebSessions列表中双击WebSocket会话,则将显示WebSockets选项卡


4
感谢您的提示-是的,最新的Fiddler确实显示了信息流。遗憾的是,它被埋在日志文件中,而不是位于自己的标签上。
Stevko'3

Firefox v45.0a2似乎没有通过Fiddler路由Web套接字(阅读superuser.com/a/558831/70209之后,我认为这是因为Firefox不使用系统代理)。@EricLaw-Fiddler Hook可以改进并适应吗?
mlhDev 2015年

@Matthew:Firefox尝试对WebSocket使用SOCKS代理(而不是HTTPS代理)。(这可能携手创建一个假的袜子会失败的代理设置?)FiddlerHook就是死也从提琴手4.6.2中删除。
EricLaw 2015年

5

WebSocket监控器-针对Firefox的开发工具的扩展,可以用来监测WebSocket连接

安装扩展程序后,打开Firefox开发人员工具并切换到“ Web套接字”面板。它显示当前页面的WS框架流量。对以下协议有额外的支持:

  • 插槽IO
  • SockJS
  • WAMP
  • 纯JSON

Firefox DevTools中的“ WebSockets”面板


为什么没有显示选项卡?我也检查了选项,没有复选框启用该选项卡:(
Rafael Moni

嗨@Jan Odvarko,您为什么不支持旧版本的Firefox?我看到你只支持版> 45
谈呒挨凡

WebSocket的监控要求,已经在Firefox 45中引入一些平台API
扬Odvarko

如果未显示“ Web套接字”选项卡,则可能是因为未正确安装扩展名。您可以尝试创建新的全新Firefox配置文件并重新安装。
扬Odvarko

1
与Firefox 57或更高版本不兼容。
TweeZz

2

不像这里提到的其他选项那样舒适,但是可以在各种情况下为您提供帮助的通用工具:使用wireshark。掌握了有关TCP的一些知识之后,您就可以调试提到的其他工具无法解决的问题(意外断开,...),因为它们的工作水平过高。您还可以(就像在Firebug中一样)阅读实际的websocket消息。

Wireshark的缺点是使用加密连接比较麻烦。

试试看,我一直使用它来调试与Python websocket后端通信的Rails应用。


1

我在以下位置发布了有关使用Chrome和Wireshark调试WebSocket消息的更多详细信息:

https://blogs.oracle.com/arungupta/entry/logging_websocket_frames_using_chrome


2
尽管这可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。
阿迪·莱斯特

感谢您的提示!博客中有几个图像快照,详细说明了如何调试WebSocket消息,这就是为什么要包含引用而不是引用。
阿伦·古普塔

1

使用Chrome开发人员工具

在此处输入图片说明

在此处输入图片说明

您将在“框架”选项卡中看到数据被更改。


这是与前一个答案相同的答案。您是否可以考虑将屏幕截图添加到该屏幕截图中?
Dan Dascalescu

-2

在firefox中,您可以打开开发人员工具栏(Shift + F2),然后在“网络”标签中查看websocket。您可以在标签底部使用过滤(对于websocket,请选择“其他”)。


似乎您是在谈论Chrome,而不是Firefox
Epoc,2015年

1
在Firefox中,我刚刚检查过。
user570605'2

3
我只101 Switching Protocols在Firefox开发工具中看到HTTP响应(告诉客户端切换到WebSocket协议)。Shift + F2打开开发人员工具栏,该工具栏基本上是一个控制台,与Firefox Dev Tools
Epoc不同
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.