Puppeteer
Puppeteer connects to rayobrowse via puppeteer.connect() with a browserWSEndpoint.
Using /connect (no SDK)
Section titled “Using /connect (no SDK)”const puppeteer = require('puppeteer-core');
(async () => { const browser = await puppeteer.connect({ browserWSEndpoint: 'ws://localhost:9222/connect?headless=false&os=windows', });
const page = (await browser.pages())[0] || await browser.newPage(); await page.goto('https://example.com', { waitUntil: 'domcontentloaded' }); console.log(await page.title());
await browser.disconnect();})();Use puppeteer-core instead of puppeteer — the browser is provided by rayobrowse, so no bundled Chromium download is needed.
Using the REST API
Section titled “Using the REST API”For more control, create a browser via the REST API and connect to the returned WebSocket endpoint:
const puppeteer = require('puppeteer-core');
const ENDPOINT = process.env.RAYOBYTE_ENDPOINT || 'http://localhost:9222';
async function createBrowser() { const resp = await fetch(`${ENDPOINT}/browser`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ headless: false, os: 'windows' }), }); const data = await resp.json(); return data.data.ws_endpoint.replace('0.0.0.0', 'localhost');}
const wsUrl = await createBrowser();const browser = await puppeteer.connect({ browserWSEndpoint: wsUrl });With proxy
Section titled “With proxy”const browser = await puppeteer.connect({ browserWSEndpoint: 'ws://localhost:9222/connect?headless=true&os=windows&proxy=http://user:pass@host:port',});