我正在尝试连接到一个puppeteer示例,运行在谷歌云功能v2。
以下是函数内部的设置:
import getPort from 'get-port';
import puppeteer from "puppeteer-extra";
const port = await getPort();
const browser = await puppeteer.launch({
args: [
`--remote-debugging-port=${port}`,
],
});
console.log(browser.wsEndpoint());
这记录了一个端点。我复制了该端点,并尝试通过它从客户端连接到
await puppeteer.connect(myEndpoint);
但它抛出了一个错误:SocketException: OS Error: The remote computer refused the network connection.
如何修复此问题?
1条答案
按热度按时间dwbf0jvd1#
您遇到的错误在使用websockets和端口连接时很常见。您可以检查此错误是否总是在连接请求期间发生,这表明计算机存在,但它没有侦听指定端口的服务,或者有防火墙阻止你。要检查并消除最可能的原因,最简单的起点是尝试使用telnet或Putty从客户端计算机手动连接。那么问题出在你的客户端代码中,如果不是,你需要检查WebSocket端点字符串是否有正确的值。
根据puppeteer文档,检查浏览器WebSocket端点的字符串值如下:
puppeteer.connect(options) options <Object>browserWSEndpoint <?string>
要连接到的浏览器WebSocket端点。这将返回:浏览器WebSocket url。浏览器websocket端点,可用作puppeteer.connect的参数。格式为您可以从
http://${host}:${port}/json/version
中找到webSocketDebuggerUrl。了解更多关于devtools协议和浏览器端点的信息。
另请查看以下链接以了解类似的实施: