@ 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, 许可证和相应来源/.