cdp: fix using WS with chromium

This commit is contained in:
CanadaHonk 2023-01-18 08:43:52 +00:00
parent 6afaa573d7
commit c4adec4dfd

View File

@ -69,23 +69,22 @@ export default async ({ pipe: { pipeWrite, pipeRead } = {}, port }) => {
attempt(); attempt();
}); });
const target = await continualTrying(() => new Promise((resolve, reject) => get(`http://127.0.0.1:${port}/json/list`, res => { const wsUrl = await continualTrying(() => new Promise((resolve, reject) => get(`http://127.0.0.1:${port}/json/version`, res => {
let body = ''; let body = '';
res.on('data', chunk => body += chunk.toString()); res.on('data', chunk => body += chunk.toString());
res.on('end', () => { res.on('end', () => {
try { try {
const targets = JSON.parse(body); const info = JSON.parse(body);
const target = targets.find(x => x.type === 'browser'); resolve(info.webSocketDebuggerUrl);
return target ? resolve(target) : reject();
} catch { } catch {
reject(); reject();
} }
}); });
}).on('error', reject))); }).on('error', reject)));
log('got target', target); log('got main process target websocket url:', wsUrl);
const ws = new WebSocket(target.webSocketDebuggerUrl); const ws = new WebSocket(wsUrl);
await new Promise(resolve => ws.on('open', resolve)); await new Promise(resolve => ws.on('open', resolve));
ws.on('message', data => onMessage(data)); ws.on('message', data => onMessage(data));