Hivebrowser
产品指南

会话

理解会话的生命周期、连接方式与清理策略。

适用需要真实浏览器渲染

目标页依赖 JavaScript、浏览器状态、截图或 Playwright 控制时创建会话。

控制明确时长与清理

保持 timeoutSec 显式,任务结束后主动停止会话。

后加浏览器档案不是默认项

只有需要持久登录态或稳定浏览器上下文时再附加档案。

什么时候创建会话

每次需要一个真实浏览器运行环境时创建会话。常见场景包括:

自动化浏览器自动化

用 Playwright 或 Puppeteer 执行登录、点击、导航、截图和页面验证。

调试台工作流验证

在调试台验证单页抓取、多页爬取、选择器、超时和产物输出。

状态登录态复用

附加浏览器档案,复用 cookies、本地存储和稳定浏览器上下文。

排查失败排查

保留日志、回放、截图和产物,让失败运行可以复现和定位。

如果只是调用普通 HTTP API,不需要创建会话;如果目标站点依赖 JavaScript、浏览器状态或真实渲染,就应该使用会话。

会话生命周期

每个会话依次经历这些状态:

1
PENDING

会话已申请,等待 API 分配健康运行节点。

2
STARTING

运行节点正在启动 Chromium;如附加浏览器档案,也会同步下载状态。

3
ACTIVE

Chromium 已运行,可以通过 CDP 连接并执行自动化。

4
STOPPING → CLOSED

停止时刷新产物、写回浏览器档案并释放运行节点资源。

如果启动或运行过程中出错,会话会进入 ERROR 状态。

默认策略:普通自动化任务显式设置 timeoutSec 并在结束后停止会话;只有人工检查才开启会话保留;只有需要登录态才附加浏览器档案;排查失败时再开启录制或保留产物。字段级请求体、默认值和响应结构见会话 API。

通过 Playwright 连接

创建会话后,使用返回的 connectUrl 连接:

import { chromium } from 'playwright-core';

const browser = await chromium.connectOverCDP(session.connectUrl);
const context = browser.contexts()[0];
const page = context.pages()[0] || (await context.newPage());

// 然后就可以像本地浏览器一样使用
await page.goto('https://example.com');
await page.screenshot({ path: 'screenshot.png' });

connectUrl 包含一次性连接令牌。流量经由连接网关路由到正确的运行节点。

停止并收集结果

使用完成后显式停止会话:

const res = await fetch(`${API}/v1/sessions/${sessionId}/stop`, {
  method: 'POST',
  headers: { Authorization: `Bearer ${API_KEY}` },
});

停止阶段会写回可写浏览器档案、刷新待处理截图/PDF/内容提取,并释放浏览器进程和会话槽位。

如果你没有手动停止,会话会在 timeoutSec 秒后被终止。

排查建议

启动
长时间不可连接

查状态、超时设置和运行节点健康。

CDP
Playwright 连接失败

确认 connectUrl 来自当前 ACTIVE 会话且令牌未过期。

运行
任务提前结束

查 timeoutSec、脚本异常、浏览器日志和网络事件。

状态
登录态未保留

确认已附加档案并允许写回;生产只保存会话 ID、终态和关键时间。字段见会话 API。