Skip to main content
net10.0net6.0net8.0

提供设备接入控制器、令牌服务与会话管理扩展

Published
Oct 19, 2026
today
Total Downloads
47.5K
47,476

Install

dotnet add package NewLife.Remoting.Extensions --version 3.9.2026.1019-beta0215
ProductVersions
.NET
net10.0net6.0net8.0

README

NewLife.Remoting — 统一远程通信框架 (RPC + HTTP + WebSocket + SRMP)

GitHub License NuGet Downloads NuGet NuGet prerelease NuGet Downloads (Extensions) NuGet (Extensions) NuGet prerelease (Extensions) NativeAOT test

AOT smoke TFM locales

platform arch contributors

🌐 繁體中文 | English | Español | Deutsch | 日本語 | Français | Português | Русский | 한국어 | العربية

NewLife.Remoting 是 NewLife 技术栈的统一远程通信基础设施,由两个 NuGet 包组成:

包 定位 覆盖
NewLife.Remoting 核心通信库 RPC 客户端/服务端、协议编解码、连接管理、流式调用、客户端基类、指令下发管线、自动更新
NewLife.Remoting.Extensions 扩展库 服务端控制器基类、最小 API 宿主、设备管理服务、Token 鉴权、命令响应总线

源码:https://github.com/NewLifeX/NewLife.Remoting

NuGet:NewLife.Remoting / NewLife.Remoting.Extensions

文档索引

文档 说明
Doc/需求文档.md 需求定义:愿景、核心目标、功能需求(RPC/STRM/CLNT/UPGD/SRV/CMD/AOT/L10N/EXT)
Doc/架构设计.md 架构设计:分层概览、核心模块架构、内存管理、测试策略、设计决策
Doc/SRV-服务端架构.md 服务端业务架构:服务层设计、核心业务流程(登录/注册/注销/心跳/升级/事件上报/指令下发)、在线会话生命周期、集群部署
Doc/功能清单.md 功能追踪:主功能状态、进行中项与待办(发版待办/待修复项)
Doc/竞品分析.md 竞品分析:RPC 框架对比 + IoT 指令下发对比矩阵
Doc/SRMP.MD SRMP 协议规范
Doc/RPC内存管理设计.md 零拷贝内存管理
Doc/自动更新机制.md 自动更新全链路设计
Doc/重试策略.md 重试策略:IRetryPolicy 接口与指数退避示例
Doc/AOT兼容性分析.md NativeAOT 支持范围、23 场景实测(冒烟 23/23)、下游使用指引与已知边界
Doc/多语言本地化接入.md 运行时消息英文化、Locales/*.yml 词表与 L.T 接入指引
Doc/README多语言规范.md README 11 种语言的定序规则、生成脚本与 CI 门禁

亮点

核心能力 说明
RPC 核心框架 SRMP 协议、JSON/二进制编解码、请求处理流水线、客户端/服务端、Cluster 连接管理、元数据传递、重试策略、服务端全链路异步化、TraceId 调用链追踪
STRM 流式调用 Server-Streaming:IAsyncEnumerable<T> 逐条推送,SRMP + SSE 双协议
CLNT 客户端基类 登录/心跳/升级/指令/事件一站式封装,WS/SSE 双通道自动切换
UPGD 自动更新 检测→下载→校验→解压→覆盖→重启全链路
SRV 服务端基础 ApiController/BaseController/BaseDeviceController、TokenService、IDeviceService;同一端点协议提供 MVC 与最小 API 两套宿主入口(镜像实现、测试锁定一致)
CMD 指令下发 SessionManager + 事件总线广播 + WS/SSE/Ping 多通道
L10N 多语言 运行时消息以英文为源文,Locales/*.yml 词表覆盖简体/繁体中文,缺译文自动回退英文;不依赖 ResourceManager 与卫星程序集
AOT 支持 net8.0+ 常驻 AOT 兼容分析(核心库 0 告警 / Extensions 0 告警)+ 自有源生成器(动作分发表/流式泵/签名类型保留),核心库 23 场景 + Extensions 最小 API 宿主 11 场景 + XCode 设备服务链路 6 场景 NativeAOT 实测通过(见 AOT 文档 §8)

快速开始

5 行服务端,5 行客户端,即刻跑通 RPC 调用:

// === 服务端 ===
var server = new ApiServer(12345);
server.Register<MyController>();
server.Start();

public class MyController : ApiController
{
    public String Ping(String name) => $"Hello {name}, {DateTime.Now:HH:mm:ss}";
    // 流式推送:返回 IAsyncEnumerable<T> 自动逐条下发
    public async IAsyncEnumerable<String> StreamLogs(Int32 count)
    {
        for (var i = 0; i < count; i++)
        {
            await Task.Delay(100);
            yield return $"Log #{i}: {DateTime.Now:HH:mm:ss}";
        }
    }
}

// === 客户端 ===
var client = new ApiClient("tcp://127.0.0.1:12345");
client.Open();

// 普通调用
var rs = await client.InvokeAsync<String>("My/Ping", new { name = "dev" });

// 流式调用 — 逐条接收服务端推送
await foreach (var log in client.InvokeStreamAsync<String>("My/StreamLogs", new { count = 10 }))
    Console.WriteLine(log);

// 元数据传递(自动注入 TraceId)
client.Headers["TenantId"] = "tenant-01";

性能指标

指标 典型值 实验峰值
TCP 长连接数 10,000 4,000,000
RPC 吞吐 100,000 TPS 22,660,000 TPS
单次 RPC 延迟 ~41 μs —
框架兼容 net45 / net461 / netstandard2.0 / netstandard2.1 / net6.0 / net8.0 / net10.0(跟随 NewLife.Core v12,net8.0+ 支持 NativeAOT)

与其它 NewLife 组件协同

组件 协同价值
NewLife.Core 日志、配置、序列化、多语言、对象池、TimerX、性能追踪
NewLife.Net 高性能网络栈、WebSocket/编码器、端口复用
NewLife.Redis 分布式缓存 / 消息队列,扩展会话共享或推送 fanout
Stardust 节点注册、配置中心、APM、发布中心;可托管 ApiServer 节点
AntJob 使用 ClientBase 接入任务调度与分布式计算
NewLife.MQTT / Modbus / IoT 设备层协议采集后通过 Remoting 上行

贡献与反馈

欢迎:Bug 反馈 / 性能优化 PR / 新协议编解码 / 控制器示例 / 文档补充 / 新语种翻译。 Issue 讨论请尽量提供:运行环境、目标框架、最小可复现代码、日志摘要。


新生命项目矩阵

各项目默认支持 net10.0/net8.0/netstandard2.1/netstandard2.0/net4.62/net4.5,旧版(2024.0801)支持 net4.0/net2.0

项目 年份 说明
NewLife.Core 2002 核心库,日志、配置、缓存、网络、序列化、APM性能追踪
NewLife.XCode 2005 大数据中间件,单表百亿级,自动分表,读写分离
NewLife.Net 2005 网络库,2266万 tps / 百万连接
NewLife.Remoting 2011 本项目,双协议通信框架
NewLife.Cube 2010 快速开发平台,权限 / OAuth / SSO
NewLife.Agent 2008 服务安装 / 守护进程 / Systemd
NewLife.Zero 2020 项目脚手架模板集合
NewLife.Redis 2017 高性能 Redis 客户端/消息队列
NewLife.RocketMQ 2018 纯托管 RocketMQ 客户端
NewLife.MQTT 2019 物联网 MqttClient/MqttServer
NewLife.IoT 2022 IoT 通信标准模型库
NewLife.Modbus 2022 Modbus 协议族
NewLife.Siemens 2022 西门子 PLC 通信
NewLife.Map 2022 地图聚合组件
NewLife.Audio 2023 音频编解码
Stardust 2018 分布式服务平台 (注册/配置/APM/发布)
AntJob 2019 分布式大数据计算平台
等等 - 更多参见官网

团队与版权

XCode

新生命团队(NewLife)成立于 2002 年,80+ 开源项目,NuGet 累计下载 400+ 万。全部项目采用 MIT 协议,可自由修改再发行(无需声明来源)。
网站:https://newlifex.com
开源:https://github.com/NewLifeX
QQ群:1600800 / 1600838

新生命团队始于2002年,部分开源项目具有20年以上历史,源码库保留2010年以来全部记录。

微信公众号:
智能大石头


License

MIT © NewLife. 欢迎商用与二次开发。

Changes from Previous Version

v3.9.2026.1017-beta1444v3.9.2026.1019-beta0215
Removed Frameworks
net7.0net9.0
Added Dependencies
NewLife.Core(net10.0)
NewLife.Core(net6.0)
NewLife.Core(net8.0)
Removed Dependencies

Adoption Assessment

Assess this package against its supported frameworks, license, maintenance signals and dependency graph before making it a project standard.

This version is marked prerelease. Validate its API and upgrade path before production use.Compatibility metadata lists 3 target frameworks; confirm the exact target used by your application.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.