【发布时间】:2011-08-10 17:23:52
【问题描述】:
有没有一种方法或扩展可以让我观察通过 WebSocket 的“流量”?出于调试目的,我想查看客户端和服务器请求/响应。
【问题讨论】:
有没有一种方法或扩展可以让我观察通过 WebSocket 的“流量”?出于调试目的,我想查看客户端和服务器请求/响应。
【问题讨论】:
Chrome 开发者工具现在可以列出 WebSocket 帧,如果帧不是二进制的,还可以检查数据。
流程:
如果您的 WebSocket 连接使用二进制帧,那么您可能仍希望使用 Wireshark 来调试连接。 Wireshark 1.8.0 添加了对 WebSockets 的解析器和过滤支持。可以在此other answer 中找到替代方案。
【讨论】:
Chrome Canary 和 Chromium 现在具有 WebSocket 消息帧检查功能。以下是快速测试的步骤:
注意:每次发送或接收新消息时,都必须通过单击左侧的 echo.websocket.org 条目来刷新主面板。
我还发布了steps with screen shots and video。
我最近出版的书The Definitive Guide to HTML5 WebSocket 也有一个专门的附录,涵盖了各种检查工具,包括 Chrome Dev Tools、Chrome net-internals 和 Wire Shark。
【讨论】:
如果您没有访问 websocket 的页面,您可以打开 Chrome 控制台并输入您的 JavaScript:
var webSocket = new WebSocket('ws://address:port');
webSocket.onmessage = function(data) { console.log(data); }
这将打开网络套接字,以便您可以在网络选项卡和控制台中看到它。
【讨论】:
其他答案涵盖了最常见的场景:观看框架的内容(开发者工具 -> 网络选项卡 -> 右键单击 websocket 连接 -> 框架)。
如果您想了解更多信息,例如哪些套接字当前处于打开/空闲状态或能够关闭它们,您会发现此网址很有用
chrome://net-internals/#sockets
【讨论】:
您有 3 个选项:Chrome(通过开发人员工具 -> 网络选项卡)、Wireshark 和 Fiddler(通过日志选项卡),但它们都是非常基本的。如果您的流量非常大或者每帧非常大,那么使用它们进行调试变得非常困难。
但是,您可以使用 Fiddler 和 FiddlerScript 来检查 WebSocket 流量,就像检查 HTTP 流量一样。该解决方案的几个优点是您可以利用 Fiddler 中的许多其他功能,例如多个检查器(HexView、JSON、SyntaxView)、比较数据包和查找数据包等。
请参阅我最近撰写的关于 CodeProject 的文章,该文章向您展示了如何使用 Fiddler(使用 FiddlerScript)调试/检查 WebSocket 流量。 http://www.codeproject.com/Articles/718660/Debug-Inspect-WebSocket-traffic-with-Fiddler
【讨论】:
如果你想要更好的体验,我建议使用 Postman 来调试 WebSocket 请求。它已作为新功能发布。 https://stackoverflow.com/a/43754722/15988851
【讨论】:
Chrome 开发者工具允许查看在打开连接期间保持挂起的握手请求,但据我所知,您看不到流量。但是,例如,您可以sniff it。
【讨论】:
Chrome 版本 29 及更高版本的简短回答:
【讨论】:
我使用了名为 Simple WebSocket Client v0.1.3 的 Chrome 扩展程序,由用户 hakobera 发布。它的使用非常简单,它允许在给定的 URL 上打开 websocket,发送消息并关闭套接字连接。非常简约。
【讨论】:
对于我开始使用的一个工具,我建议firecamp 它像Postman,但它也支持websockets和socket.io。
【讨论】: