@freerdp-bridge/api

中文文档
0.7.0发布于 2026/10/31MITTypeScriptES Module构建来源已验证近 30 天下载 2573

共享 HTTP/WebSocket会话 API和FreeRDP浏览器桥的参考浏览器资产. 这个 ./fastify 导出在已有服务器上挂载桥。 大多数应用程序应安装 @freerdp-bridge/fastify,可以再出口这种一体化.

中文使用文档
文档目录10 节
  1. 目的
  2. 安装
  3. 所需资源
  4. 使用量
  5. HTML 剪贴板
  6. 图像剪贴板在 0. 5.0 中
  7. 以0.6.0管理文件
  8. 0.7.0中的主机设备库存
  9. 限制
  10. 许可证

@ freordp-bridge/ api (英语)

目的

共享 HTTP/ WebSocket 会话 API 和 FreeRDP 的参考浏览器资产 浏览器桥. 这个 ./fastify 导出在已有服务器上挂载桥. 大多数应用程序应安装 @freerdp-bridge/fastify,用于再出口 这种融合.

安装

# Linux x64 / glibc application server
npm install [email protected] @freerdp-bridge/api @freerdp-bridge/runtime-linux-x64-gnu

# Windows x64 application server
npm install [email protected] @freerdp-bridge/api @freerdp-bridge/runtime-win32-x64

所需资源

节点24、无害环境管理、快取5和明确安装的本地运行时间 与JS软件包相同的产品版本. 准备二进制和私有 FreeRDP 库处于运行时间;消费者不需要编译器或系统FreeRDP. 节点.js和浏览器没有捆绑.

使用量

import Fastify from 'fastify';
import { rdpBridgePlugin, resolveNativeRuntime } from '@freerdp-bridge/api/fastify';

const app = Fastify();
const worker = await resolveNativeRuntime({ runtimeRoot: '/private/run/rdp-bridge' });
app.register(rdpBridgePlugin, {
  prefix: '/rdp',
  worker,
  allowedOrigins: ['https://app.example'],
  authenticate: request => verifyApplicationIdentity(request),
});
await app.listen({ host: '127.0.0.1', port: 8080 });

执行 verifyApplicationIdentity 使用经核实的主机无记名/mTLS身份, 返回时 { id: verifiedUserId } 或者说 undefined这里没有供应。 使用 windows上绝对的运行时间 Root。 主机拥有外部 TLS 和 日志策略:排除证书并附加 URL 令牌. 饼干身份 需要单独的CSRF/Origin适配器,目前被拒绝.

路由在所需的前缀下共享主机端口. 如果主机有一个 所有 WebSocket 调度器, 使用 upgradeMode: 'manual' 和手柄从 onReady。 。 。 . handle.handleUpgrade(request, socket, head) 返回虚伪 外国航线. 保留封闭的手动手柄来拒绝后期桥面升级. await app.close() 加入桥梁清理; await handle.close() 仅退休 桥和保留宿主.

@freerdp-bridge/api/browser 出口 referenceBrowserDirectory服务于 通过您的静态路由器设置客户端 basePath: '/rdp'。 。 。 . 软件包导出 ./fastify 财务报告和审定财务报表 ./browser,没有根 API 导入.

HTML 剪贴板

在已认证会话创建请求中明确选择 HTML :

{"clipboard":{"mode":"bidirectional","text":true,"html":true,"maxItemBytes":1048576}}

这只是剪贴板部分; 主机也提供授权目标 全权证书和全权证书。 需求 clipboardHtml: true 在本地能力。 这个 匹配的参考资产提供单独的 Paste/Send/Get/Copy 动作和 a 安全静态格式化配置 。 报价不读取任何剪贴板 . HTML 和 Unicode 共享一个项目/ flight/ quota; 不支持的 HTML 被拒绝 没有自动文本倒置。 文件剪贴板仍然分开 . 见 HTML 指南 用于集成、选定范围和浏览器权限要求。 在此之前 出版,使用完整的经核实的当地0.5.0档案;来源版本确实如此 没有确定登记册的可用性.

图像剪贴板在 0. 5.0 中

被接受的0.5.0发行中引入了图像剪贴板. 保留JS和 本地运行时版本在后期版本中使用时匹配.

增加0.5.0版本 clipboard.images: true 有个方向, text: true 和 有限 maxItemBytes。需要本地 clipboardImage, (中文(简体) ), clipboardText 财务报告和审定财务报表 clipboardRevoke海关工人工厂必须保留冻结的限制. 参考浏览器提供单独的PNG Paste/Send/Get/Copy/Clear动作. 图像共享文本/ HTML 权限,一次传输飞行并取消;出价永远不会 自动读取 OS 剪贴板。 RGBA8 像素和完整的本土 DIBV5 写入必须符合项目配额,并有16个米B上限。 文件剪贴板是独立的. 已发布 0. 4. 0 不包含此特性: 使用匹配已验证 0. 5. 0 JS/原生文物. 见 应用程序指南 用于JSON会议、准备状态、打入的控制方法、缓冲擦拭和精确 浏览器/RDP接受限.

以0.6.0管理文件

启用可信任的服务器侧 sessions.files 暴露经认证的限制 正在流出文件路由,并在会话 JSON 中选择会话-沙盒驱动器. thinclientDrives 是这些描述的别名,包括只读 股权。 使用匹配的JS/本土产品版本;发布0.5.0不 提供这些文件 API。 会话输入不能选择任意的主机路径 .

OS 文件管理器 Ctrl+C/Ctrl+V 仍被推迟(clipboardFiles: false) (中文(简体) ). 见 文件政策、路径、框架示例和测试范围。 。 。 .

0.7.0中的主机设备库存

0.7.0版本添加了此API;公用0.6.0不包含. 保留联合来文/本土来文 版本匹配 。 在公布前,使用已核实的完整地方档案。 它列出应用程序的元数据 服务器;它不列出浏览器计算机上的设备,也不重定向设备.

import { resolve } from 'node:path';
import { discoverHostDevices, resolveNativeRuntime } from '@freerdp-bridge/api/fastify';

const worker = await resolveNativeRuntime({
  runtimeRoot: resolve('.runtime/operator-inventory'),
});
const report = await discoverHostDevices(worker, {
  classes: ['printers', 'smartcards', 'serial', 'parallel', 'usb'],
  maxDevices: 16,
});
for (const group of report.classes)
  console.log(group.kind, group.status, group.devices.length);

使用私有可写入的运行时目录和可信任的操作员访问; 没有 HTTP 自动添加库存路径。 每个电话都会创建并加入一个新鲜的 没有RDP连接或证书的本地工人. 最大值为全球 跨选定类别(1-128); limit 表示不完整的快照和 available 也许是空的。 处理 unavailable, (中文(简体) ), denied, (中文(简体) ), unsupported 财务报告和审定财务报表 failure 当然 ID是快照元数据,而不是设备打开的权限; 避免在公共日志中披露姓名/ID. 供应商、界限和测试范围。 。 。 .

限制

在64 KB范围内严格验证机构 附加符号,严格RDP证书验证依然执行. 检查 /rdp/v1/build 财务报告和审定财务报表 /rdp/v1/capabilities 用于本地简介。 安装 不接受所有原有的 V1 设备能力。 这不是独立的 生产身份服务或部署政策.

许可证

项目拥有的代码和浏览器资产为MIT;参见LICENSE. 土著依赖关系 保留他们自己的条件 在单独的运行时间的第三 PARTY NOTICES.md, 许可证和相应来源/.

版本与发布记录

@freerdp-bridge/api 共发布 10 个版本,首次发布于 2026/10/23;过去 12 个月发布了 10 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.7.0latest2026/10/3116 天前
0.6.02026/10/3017 天前
0.5.02026/10/2719 天前
0.4.02026/10/2620 天前
0.3.02026/10/2521 天前
0.2.52026/10/2423 天前

关于 @freerdp-bridge/api 的常见问题

@freerdp-bridge/api 是什么?

共享 HTTP/WebSocket会话 API和FreeRDP浏览器桥的参考浏览器资产. 这个 ./fastify 导出在已有服务器上挂载桥。 大多数应用程序应安装 @freerdp-bridge/fastify,可以再出口这种一体化.

如何安装 @freerdp-bridge/api?

在项目目录运行 npm install @freerdp-bridge/api,或使用 pnpm add / yarn add / bun add。

@freerdp-bridge/api 支持 TypeScript 吗?

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

@freerdp-bridge/api 支持 ESM 还是 CommonJS?

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

@freerdp-bridge/api 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=24 <25。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@freerdp-bridge/api 可以商用吗?

@freerdp-bridge/api 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@freerdp-bridge/api 的下载量有多少?

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

@freerdp-bridge/api 还在维护吗?

最新版本 0.7.0 发布于 2026/10/31(16 天前);至今共发布 10 个版本,其中过去 12 个月发布了 10 个;首次发布于 2026/10/23。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。