有没有一种方法或扩展可以让我观察WebSocket传输的“流量”?为了调试目的,我想看到客户端和服务器的请求/响应。
有没有一种方法或扩展可以让我观察WebSocket传输的“流量”?为了调试目的,我想看到客户端和服务器的请求/响应。
Chrome开发者工具现在可以列出WebSocket帧,并且如果帧不是二进制的,还可以检查数据。
步骤:
如果您的WebSocket连接使用二进制帧,则可能仍然需要使用Wireshark调试连接。Wireshark 1.8.0 添加了WebSockets的解析器和过滤支持。另一种替代方法可以在此答案中找到。
Chrome Canary和Chromium现在具有WebSocket消息帧检查功能。以下是快速测试的步骤:
注意:每次发送或接收新消息时,您都需要通过单击左侧的echo.websocket.org条目来刷新主面板。
我还发布了带有屏幕截图和视频的步骤。
我最近出版的书,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.send('foo');
。 - Iceberg其他答案已经覆盖了最常见的情况:观看帧的内容(开发者工具->网络选项卡->右键单击websocket连接->帧)。
如果你想知道更多信息,比如哪些socket当前是打开/空闲状态或者如何关闭它们,你会发现这个url很有用
chrome://net-internals/#sockets
如果您想要更好的体验,我建议使用Postman来调试WebSocket请求。它已经作为一个新功能发布了。 https://dev59.com/ulgQ5IYBdhLWcg3wxGlP#43754722
Chrome 29及以上版本的简短回答: