从网络选项卡捕获 Websocket 消息
Posted
技术标签:
【中文标题】从网络选项卡捕获 Websocket 消息【英文标题】:Capturing Websocket Messages From Network Tab 【发布时间】:2019-09-11 16:33:25 【问题描述】:使用 puppeteer 我正在尝试读取 websocket 消息并将它们放入字符串中以输出到控制台。要查看一些 websocket 消息的示例,您可以访问代码中下面提供的链接,然后按照括号中的步骤操作。 (CTRL+SHIFT+I > 网络 > WS (websocket) > 消息)
var puppeteer = require('puppeteer');
async function run()
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('http://powerline.io');
console.log('navigated successfully');
page.on('response', response =>
const isWSS = ['websocket'].includes(response.request().resourceType())
if (isWSS)
console.log(isWSS);
log(response.url());
response.text().then(log)
)
run();
【问题讨论】:
【参考方案1】:这是一个例子,它是如何被捕获的:
var puppeteer = require('puppeteer');
async function run()
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('http://powerline.io');
const cdp = await page.target().createCDPSession();
await cdp.send('Network.enable');
await cdp.send('Page.enable');
const printResponse = response => console.log('response: ', response);
cdp.on('Network.webSocketFrameReceived', printResponse); // Fired when WebSocket message is received.
cdp.on('Network.webSocketFrameSent', printResponse); // Fired when WebSocket message is sent.
run();
阅读更多关于network events的信息。
【讨论】:
注意:这不适用于通过 Web Workers 创建的 WebSocket 连接以上是关于从网络选项卡捕获 Websocket 消息的主要内容,如果未能解决你的问题,请参考以下文章
如何捕获从 SQL Server 到 C# 应用程序的消息选项卡的所有内容?
是否可以向 Chrome 中的现有 websocket 连接发送消息?