# @actuallab/fusion-rpc 中文文档

规范地址：https://npmcn.com/package/%40actuallab/fusion-rpc/

版本：15\.1\.24
npm 元数据更新时间：2026-11-07T11:39:49.467Z
中文译文更新时间：2026-11-06T12:02:20.295Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40actuallab/fusion-rpc
原文对照：https://npmcn.com/package/%40actuallab/fusion-rpc/?lang=original
项目主页：https://github.com/ActualLab/Fusion#readme
源码仓库：https://github.com/ActualLab/Fusion

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

- 包体积（解压后）：85.1 kB，8 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：3 个
- 首次发布：2026-02-18T09:33:02.751Z
- 最新版本发布：2026-11-07T11:39:49.152Z
- 近 30 天下载量：3305（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：54（近 12 个月 54 个）

## 中文简介

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

## 安装

```sh
npm install @actuallab/fusion-rpc
```

也可以使用：`pnpm add @actuallab/fusion-rpc`、`yarn add @actuallab/fusion-rpc`、`bun add @actuallab/fusion-rpc`

## README

# @ actuallab/ music- rpc

[![npm](https://img.shields.io/npm/v/@actuallab/fusion-rpc)](https://www.npmjs.com/package/@actuallab/fusion-rpc) [![Documentation](https://img.shields.io/badge/Documentation-6B5B95)](https://fusion.actuallab.net/PartTS-FusionRpc) [![License](https://img.shields.io/npm/l/@actuallab/fusion-rpc)](https://github.com/ActualLab/Fusion/blob/master/LICENSE)

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

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

## 安装

```bash
npm install @actuallab/fusion-rpc
```

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

## 快开始

```ts
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`](https://fusion.actuallab.net/PartTS-React#usecomputedstate) 和构成部分 当服务器侧数据发生变化时, 自动刷新 .

## 无效流

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

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

## API 表面

| API 密码 | 说明 |
| --- | --- |
| `FusionHub` | `RpcHub` + 计算- 意识代用,无效接线, `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` 参考文献](https://fusion.actuallab.net/PartTS-FusionRpc) ——完整设置示例,无效并重新连接细节
-   [类型脚本端口概览](https://fusion.actuallab.net/PartTS)
-   [TodoApp 样本( 反应 + Fusion)](https://github.com/ActualLab/Fusion.Samples/tree/master/src/TodoApp)

## 许可证

麻省理工学院——见 [自由主义](https://github.com/ActualLab/Fusion/blob/master/LICENSE)。 。 。 .

## 常见问题

### @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 和提交记录判断。

