google-chrome - 调试二进制 websocket

标签 google-chrome websocket google-chrome-devtools wireshark

我正在尝试使用 websockets 传递二进制数据来调试 Web 应用程序。 Chrome DevTools 有一个方便的网络选项卡,可以显示 websocket 框架...除了二进制框架之外,它只显示 Binary Frame (Opcode 2),仅此而已。我不知道他们为什么在这个时候停下来,因为提供更多信息是如此容易。我什至找到了pull request for this feature从 2 年前开始。

无论如何,我正在寻找替代方案。我还想为二进制数据添加一些自定义解析逻辑。

到目前为止,我找到的最佳解决方案 - 取消停靠开发工具窗口,为开发工具打开另一个开发工具(在“元素”选项卡中按 Ctrl+Shift+I),导航到“网络”选项卡的源文件,在该行上放置一个断点设置框架的文本内容,并在编辑断点菜单中添加修改局部变量的JS代码。我得到了这样的东西,这几乎是完美的,但是设置起来相当麻烦,并且很难与更复杂的解析代码一起使用。

enter image description here

理想情况下,这样的事情可以通过 Chrome 扩展来完成,但 devtools 扩展似乎只能捕获常规网络请求。

另一种选择是使用 Wireshark,但这需要 SSL key 日志,并且没有明确的文档说明如何使自定义解析器解析 SSL 解码器的输出而不是原始 TCP 数据(这里有一个 question about it ,没有回答)。另外,我有大量的JS代码用于解析二进制数据,将所有内容都翻译成LUA会很痛苦。

更新:我设法使用 debugger API 对此进行了扩展。这需要制作您自己的列出框架的 UI,但最终它按照我想要的方式工作。

最佳答案

Chrome 74 中的 DevTools 支持开箱即用的二进制 View

updates/2019/03/devtools

viewer to convert the message into Base64 or UTF-8

关于google-chrome - 调试二进制 websocket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52140370/

相关文章:

java - 如何使用 chrome 选项将 headless chrome 的窗口大小设置为全屏?

websocket - Phoenix channel ,设置每个 channel 的最大用户数

javascript - 使用 cowboy 和 MessagePack 通过 websocket 发送二进制数据

google-chrome-devtools - 将 "IsXhr"列添加到 Chrome 开发工具网络控制台

css - 如果使用 CSS 行高,插入符在第二行向下移动——有解决方法吗?

javascript - "ResizeObserver - loop limit exceeded"|从未使用过 API

websocket - Google Cloud 中的负载平衡 websocket 连接

google-chrome - 从 chrome 扩展程序中访问响应负载/数据

javascript - 在 DevTools 中检测作用于元素的代码

javascript - Chrome 显示 "Resource interpreted as Stylesheet but transferred with MIME type text/html"