@actuallab/fusion-rpc

中文文档
15.1.24发布于 2026/11/07MITTypeScriptESM + CJS构建来源已验证近 30 天下载 3305

Fusion和RPC之间的桥梁 - FusionHub,计算服务注册

中文使用文档
文档目录7 节
  1. 安装
  2. 快开始
  3. 无效流
  4. API 表面
  5. 页:1
  6. 文档
  7. 许可证

@ actuallab/ music- rpc

npm Documentation License

之间的桥梁 @actuallab/fusion 财务报告和审定财务报表 @actuallab/rpc数字 : FusionHub - 计算意识的RPC 中枢, 其客户端代理本地缓存结果, 并在. NET 服务器说时将其丢弃 数值已改变。 这是Fusion的客户端RPC基础设施的等同类型Script (远程计算服务拦截器, RpcComputeCallType) (中文(简体) ).

这是你想要的包裹 如果你的目标是"呼叫" 组合 从JS/TS客户端计算在.NET服务器上运行的服务,并获得实时更新".

安装

npm install @actuallab/fusion-rpc

无害环境管理首先采用CJS制;船舶自用 .d.ts。拉进 @actuallab/core, (中文(简体) ), @actuallab/fusion,以及 @actuallab/rpc。 。 。 .

快开始

import { FusionHub, defineComputeService } from '@actuallab/fusion-rpc';
import { RpcClientPeer, RpcPeerStateMonitor } from '@actuallab/rpc';

// 1. Define the service — the name must match the .NET interface name exactly.
const TodoApiDef = defineComputeService('ITodoApi', {
    // Compute methods: cached locally, invalidated by the server
    Get: { args: ['', ''] },                     // (session, id) → TodoItem
    ListIds: { args: ['', 0] },                  // (session, count) → string[]
    GetSummary: { args: [''] },                  // (session) → TodoSummary

    // Commands: opt out of compute caching
    AddOrUpdate: { args: [{}], callTypeId: 0 },
    Remove: { args: [{}], callTypeId: 0 },
});

// 2. Hub + peer. The RpcClientPeer ctor starts the connect/reconnect loop.
const hub = new FusionHub();
const peer = new RpcClientPeer(hub, 'ws://localhost:5005/rpc/ws');
hub.addPeer(peer);

// 3. Typed client proxy — addClient is idempotent per (peer, service),
//    so every consumer shares one Computed and one invalidation stream.
const api = hub.addClient<ITodoApi>(peer, TodoApiDef);

// 4. Optional: connection status for the UI
const monitor = new RpcPeerStateMonitor(peer);

// Cached until the server invalidates it
const ids = await api.ListIds('~', 10);

把它给 useComputedState 和构成部分 当服务器侧数据发生变化时, 自动刷新 .

无效流

  1. 客户称计算方法—— FusionHub 送来 CallType = 1。 。 。 .
  2. 服务器计算、响应 $sys.Ok;客户端在当地缓存结果.
  3. 服务器侧数据更改和服务器侧 Computed<T> 无效.
  4. 服务器发送 $sys-c.Invalidate 那个电话号码.
  5. 客户端无效其本地复制; 无效级联为每个依赖 @computeMethod 财务报告和审定财务报表 ComputedState<T> ——和回放重击.

一个 Invalidate 到达 在此之前 结果以透明方式重复通话(最多三次尝试) 在连接时). 在断开时,计算复制品自我验证,而不是重新验证,因为 服务器的追踪已经消失 飞行中正常的通话会像往常一样重复.

API 表面

API 密码说明
FusionHubRpcHub + 计算- 意识代用,无效接线, acceptConnection(ws) 主办单位
defineComputeService(name, methods)方法默认为 callTypeId: 1 (计算); 使用 callTypeId: 0 用于命令
FUSION_CALL_TYPE_ID计算调用类型 id (1(中文(简体) )
RpcOutboundComputeCall包含无效处理的外出呼叫类型

页:1

  • 撤销. 打电话的 AbortSignal 旅行经过 AsyncContext (单位:千美元)abortSignalKey(三); 中止发送 $sys.Cancel,而由此产生的取消错误永远不会被缓存.
  • 在节点托管计算服务. hub.addService(def, impl) 包装计算方法和线 无效到 $sys-c.Invalidate。使用类 @computeMethod 成员在任职时 方法互相调用——一个平面对象的活性程序称它们为原始函数并失去 依赖边缘.

文档

许可证

麻省理工学院——见 自由主义。 。 。 .

版本与发布记录

@actuallab/fusion-rpc 共发布 54 个版本,首次发布于 2026/02/18;过去 12 个月发布了 54 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
15.1.24latest2026/11/07今天
15.1.222026/11/07今天
15.1.152026/11/07今天
15.1.112026/11/07今天
15.1.62026/11/07今天
15.0.212026/10/2414 天前

关于 @actuallab/fusion-rpc 的常见问题

@actuallab/fusion-rpc 是什么?

Fusion和RPC之间的桥梁 - FusionHub,计算服务注册

如何安装 @actuallab/fusion-rpc?

在项目目录运行 npm install @actuallab/fusion-rpc,或使用 pnpm add / yarn add / bun add。

@actuallab/fusion-rpc 支持 TypeScript 吗?

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

@actuallab/fusion-rpc 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@actuallab/fusion-rpc 可以商用吗?

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

@actuallab/fusion-rpc 的下载量有多少?

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

@actuallab/fusion-rpc 还在维护吗?

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