# @faiber/faiber-session 中文文档

规范地址：https://npmcn.com/package/%40faiber/faiber-session/

版本：2\.8\.0
npm 元数据更新时间：2026-11-14T09:45:26.264Z
中文译文更新时间：2026-11-14T09:21:54.984Z
软件包许可：未声明

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40faiber/faiber-session
原文对照：https://npmcn.com/package/%40faiber/faiber-session/?lang=original

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：313 kB，32 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：1 个
- 首次发布：2026-07-18T14:30:09.414Z
- 最新版本发布：2026-11-14T09:45:26.076Z
- 近 30 天下载量：3757（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：66（近 12 个月 66 个）

## 中文简介

房间,房间的生命周期,LiveKit活物和网络呼号,录音,回放,分析,交互式起步,以及房间状态的反应.

## 安装

```sh
npm install @faiber/faiber-session
```

也可以使用：`pnpm add @faiber/faiber-session`、`yarn add @faiber/faiber-session`、`bun add @faiber/faiber-session`

## README

# @faiber/faiber-会话

房间,房间的生命周期,LiveKit活物和网络呼号,录音,回放,分析,交互式起步,以及房间状态的反应.

## 安装

```bash
npm install @faiber/faiber-session
```

## 配置

```ts
import { FaiberClient, MemoryTokenProvider } from "@faiber/sdk-core";
import { SessionApi } from "@faiber/faiber-session";

const tokens = new MemoryTokenProvider();
const client = new FaiberClient("session", {
  domains: { session: process.env.FAIBER_SESSION_URL! },
  tokenProvider: tokens,
  axios: { timeout: 15_000, withCredentials: true },
});
const api = new SessionApi(client);

const rooms = await api.rooms.list({ page_number: 1, page_size: 10 });
const token = await api.livekitToken(roomId);
```

## 完全能力

这个软件包暴露出45个由源载HTTP操作. 通用工作流程有简洁的方法 `api`; 从 `operations.types`。一个路由器 `ANY` 滤波器被曝光为一个操作,采用明确的HTTP方法.

| 区域 | 业务 | HTTP 方法 |
| --- | --: | --- |
| `asset-economy` | 1个 | `POST` |
| `assistant-tools` | 3个 | `GET` |
| `branding` | 页:1 | `GET`, (中文(简体) ), `POST`, (中文(简体) ), `PUT` |
| `configuration` | 2个 | `GET`, (中文(简体) ), `PUT` |
| `integration` | 2个 | `GET` |
| `native-access` | 页:1 | `DELETE`, (中文(简体) ), `GET`, (中文(简体) ), `POST`, (中文(简体) ), `PUT` |
| `notification-state` | 1个 | `GET` |
| `recording` | 页:1 | `GET`, (中文(简体) ), `POST` |
| `room` | 第 19 条 | `DELETE`, (中文(简体) ), `GET`, (中文(简体) ), `PATCH`, (中文(简体) ), `POST`, (中文(简体) ), `PUT` |
| `room-state` | 1个 | `POST` |
| `router` | 3个 | `ANY`, (中文(简体) ), `GET` |

房间开始,停止,结束,回放,录制,webhook,和状态响应路线是独立的操作,所以它们的不寻常的GET/POST动词被准确保存.

启用范围资产时使用 `interact(roomId, {event_id, interaction, content})` 页:1 `emoji`, (中文(简体) ), `raise_hand`, (中文(简体) ), `room_chat` 和其他配置的交互. 重试时重用事件ID 。 服务器验证会员身份 哑弹状态 充电状态, 交付前冷却和聊天限制. 房间聊天是免费的,但仍然是 费率有限。 浏览器 LiveKit 数据发布在此模式下被禁用. 入会者在内部使用RabbitMQ预留;打电话者不得 输入免费会话或重置充电本身。 经纪人超时拒绝录取 和互动。 仍然支持通过 Axios 正常选项取消 .

## 认证和授权

使用一个 `TokenProvider` 以转发已签名用户的 Bearer 令牌,或启用 `withCredentials` 用于安全的 Http 只有饼干会话。 每个行动的JSDoc都包含从服务路线卫士复制的许可要求. SDK不嵌入 API 密钥,证书,本地主机 URL,沙盒主机,或生产主机.

## 投入、询问、答复和运输

所有方法都返回完整的Axios响应,包括状态,头,以及请求ID. 请求机构和查询对象被命名为导出接口. 使用房间和录音查询 `page_number` 财务报告和审定财务报表 `page_size`; 记录页面包括 `meta`,而房间列表包含 `data.rooms` 没有页码元数据。 标准 Axios 请求选项、信头、超时、适配器、拦截器和 `AbortSignal` 取消被支持为最后参数.

一般性的REST资源得到能力保障。 调用未注册的遗留方法 `UnsupportedOperationError` 在发送请求之前, 而不是生成后端 `405`。 。 。 .

## 错误和取消

```ts
try {
  await api.client.get("/health", undefined, { signal: AbortSignal.timeout(5_000) });
} catch (error) {
  // Axios errors retain response.status and the service error body.
}
```

使用 `@faiber/faiber-ts-sdk` 当一个应用程序需要多个具有一个配置的Faiber服务时.

### 存在和节制

`operations.roomRoomsPresenceEventsGet(roomId)` 返回类型 `joined`编号 :`left` 带有 UTC 时间戳的事件。 访问需要房间读取许可和预览/参与者授权. `roomRoomsSelfModerationGet` 读取当前参与者的哑状态; `roomRoomsParticipantMutePut(roomId, profileId, {muted:true})` 需求 `room:end` 和授权的房间所有权。 默特-至时标是无效的RFC 3339字符串. 保留经认证的标准Axios回复和取消选项.

### 信任的 LMS 通知状态

`operations.notificationStateSnapshotGet(roomId, options)` 需要只使用服务器 `x-infera-lms-token` 匹配会话 `LMS_SERVICE_TOKEN`。从不向浏览器曝光. 反应包括可失效的教室会话和实际启动时间戳,当前 当前用户身份、条目可用性和结束状态。 缺少配置或一个 不可用的媒体提供者返回503;无效的证书返回403.

这种观察可以坚持第一个学习启动标记和一个发包事件. 现场直播室与LiveKit进行五秒钟的接合;化妆室最近咨询 客户活动。 它不是独特的出席或准时性的证据。 SDK保留 会话的室友身份证明;呼叫者必须核实他们向犬类国内流离失所者用户的映射. `flowIntegration()` 调用挂载的根路径 `/integration/flow`。 。 。 .

### 同伴运输

`operations.routerProxyViewServiceAny("chat", "conversations/owned/messages", "GET", undefined, {limit: 20})` 使用会话认证的对等边界。 支持的同伴为 `chat`, (中文(简体) ), `asset`, (中文(简体) ), `profile`, (中文(简体) ), `drm` 财务报告和审定财务报表 `lms`。给出原始的非空路段;嵌入式斜线 保存,同时点倒转, %出逃,查询/断裂语法和 背鞭在发送前被拒绝。 供应查询单列.

这是不透明的运输: 在准备时使用目标服务命名的商业类型 a JSON 字符串,设置目标内容-类型并保留请求在2MiB下. 这种方法 已缓冲返回 `ArrayBuffer`编号 :`Uint8Array` 带有完整 Axios 状态和标题的字节 . 使用共享客户端的清晰流传输用于SSE或介质流. 会话推进其抽取的行为者,而不是提供呼叫者 `x-user-*` 头. 聊天接收不到浏览器 cookie;其他同行在提供时接收到cookie. 会议室范围Chat授权检查参与或预览访问,然后Chat会员. 这个 `x-session-room-id` 支持 Chat 读取/ message 写入标题范围; 它没有 允许任意谈话管理。 会话从它的 房间名册和LMS工作人员,并过滤到要求的房间.

DRM读取赠款不同:经认证的演员收到基于路径的目录, 软件包和 ClearKey 读取权限时,无需对这个代理机进行室友查询. 目标服务必须强制资源获取;这种运输不是成员, 许可证所有权或出勤证明。 不要把它当作通用许可绕道.

缺少Chat/DRM/LMS配置和上游运输故障还原502. 资产 和配置文件在缺少其URL变量时保留系统命名空间默认; 在依赖沙盒隔离之前设置明确的项目对等URL。 未知的对等器 return404和请求多为2MiB return413. 保留同伴地位代码;答复 头是允许列表的子集,不是所有的上游头. 会话流聊天 事件和 DRM 包文件上游, 但是这个 SDK 帮助缓冲它们的字节 . 交叉来源 `x-session-room-id` 支助和实际参与服务许可 核查需要单独的核查;仅凭代理请求就无法证明.

`CONNECT` 需要一个明确提供的具有隧道能力的Axios适配器。 默认 节点 Axios 适配器不消耗 CONNECT 响应事件,浏览器限制 隧道方法; SDK 拒绝在运输前调用默认适应器 CONNECT .

### 资料来源简要观察政策

使用源属管理 API 并配有 Bearer 令牌 `session:summary_access:manage`该服务重新检查当前境内流离失所者在 每个请求; 仅提供 cookie 的会话或调用用户头不批准 进入。 启用还验证已配置的收藏家当前 `session:summary:read` 允许。 这项政策不准许模式访问或 更改收藏器绑定.

```ts
const observed = await sdk.session.operations.nativeSummaryAccessStatus();
await sdk.session.operations.saveNativeSummaryAccessPolicy({
  enabled: false,
  expected_revision: observed.data.data.policy?.revision ?? 0,
  reason: "Pause collection for review",
});
await sdk.session.operations.revokeNativeSummaryObject({
  object_id: sourceObjectId,
  reason: "Exclude this source object",
});
await sdk.session.operations.restoreNativeSummaryObject(sourceObjectId, {
  reason: "Restore after review",
});
```

僵硬的政策修改返回409;在重试前重新装入并审查. 原因 需要且仅限于1024个Unicode字符。 退职政策继续存在 残废再生. 作为JSON的恢复行动会发出理由 迪莱特的尸体。 成功保存返回当前绑定、政策和计数; 待定对象可以保留到背景调节完成。 阿克索斯语Name 回复,出错,信头,超时和中止信号被保存. 这个 单独 `/mcp` 运输使用已签名的扩展授权并拒绝浏览器来源; 这些 " 无害环境技术 " 方法不提供多边协商进程会议.

在运输出错或503后,在重试突变前重新装入当前状态:在后期状态读取或调节失败前,源可以执行其策略/撤销. 使用重新装入的修订版并审查结果状态 .

### 原住房间和配置合同

需要创建房间 `name`数字 `capacity` 和无时区 `starts_at` (例如 `2026-10-21T12:00:00`) (中文(简体) ). 房间状态是数字;房间状态的enum名称使用PascalCase,例如 `Question` 财务报告和审定财务报表 `ChargeLow`PUT 和 PATCH 都部分更新;省略或无效可选更新字段保存存储值. `rooms.delete` 返回删除的房间快照 `data.room`。交互启动时不接受 JSON 天体。 回放返回房间及其状态,而不是回放 URL.

品牌保存替换文档;省略重置为默认值的值. 使用第一个字段的FormData `file` 最多8个米B的PNG/JPEG/WebP标志。 上传返回 `data.asset_key` 财务报告和审定财务报表 `data.url`; 单独保存资产密钥。 公共资产读取返回字节和内容-Type. 配置读取了隐秘存在布尔;空白/被泄露/被忽略了保存现有秘密。 录取 `audio_processing_enabled` 默认为虚假。 助理会议名单/详细访问使用明确自我/所有许可检查和参与者成员;全球详细访问可能包括其他参与者的分析.

存储模型分析,DRM快照,交互内容和"资产收受"扩展字段都是明确记载的JSON边界;SDK不发明提供商的子计划. 这个软件包的源审查覆盖了45个挂载的HTTP操作. 编译的SDK检查,准确的本土接受和部署的网关执行是单独的放行门.

## 常见问题

### @faiber/faiber-session 是什么？

房间,房间的生命周期,LiveKit活物和网络呼号,录音,回放,分析,交互式起步,以及房间状态的反应\.

### 如何安装 @faiber/faiber-session？

在项目目录运行 npm install @faiber/faiber-session，或使用 pnpm add / yarn add / bun add。

### @faiber/faiber-session 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @faiber/faiber-session 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @faiber/faiber-session 可以商用吗？

@faiber/faiber-session 使用 未声明 许可。package\.json 没有声明许可证。没有许可证的代码默认保留全部权利，商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括，不构成法律意见，请以许可原文为准。

### @faiber/faiber-session 的下载量有多少？

根据 npm 官方下载统计，@faiber/faiber-session 在 2026/10/14 – 2026/11/12 这 30 天内被下载 3,757 次，日均约 125 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @faiber/faiber-session 还在维护吗？

最新版本 2\.8\.0 发布于 2026/11/14（今天）；至今共发布 66 个版本，其中过去 12 个月发布了 66 个；首次发布于 2026/07/18。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

