NewLife.Remoting
3.9.2026.801
dotnet add package NewLife.Remoting --version 3.9.2026.801
NuGet\Install-Package NewLife.Remoting -Version 3.9.2026.801
<PackageReference Include="NewLife.Remoting" Version="3.9.2026.801" />
<PackageVersion Include="NewLife.Remoting" Version="3.9.2026.801" />
<PackageReference Include="NewLife.Remoting" />
paket add NewLife.Remoting --version 3.9.2026.801
#r "nuget: NewLife.Remoting, 3.9.2026.801"
#:package NewLife.Remoting@3.9.2026.801
#addin nuget:?package=NewLife.Remoting&version=3.9.2026.801
#tool nuget:?package=NewLife.Remoting&version=3.9.2026.801
NewLife.Remoting — 统一远程通信框架 (RPC + HTTP + WebSocket + SRMP)
NewLife.Remoting 是 NewLife 技术栈的统一远程通信基础设施,由两个 NuGet 包组成:
| 包 | 定位 | 覆盖 |
|---|---|---|
| NewLife.Remoting | 核心通信库 | RPC 客户端/服务端、协议编解码、连接管理、流式调用、客户端基类、指令下发管线、自动更新 |
| NewLife.Remoting.Extensions | 扩展库 | 服务端控制器基类、设备管理服务、Token 鉴权、命令响应总线 |
源码:https://github.com/NewLifeX/NewLife.Remoting
NuGet:
NewLife.Remoting/NewLife.Remoting.Extensions
文档索引
| 文档 | 说明 |
|---|---|
| Doc/需求文档.md | 需求定义:愿景、核心目标、功能需求(RPC/STRM/CLNT/UPGD/SRV/CMD) |
| Doc/架构设计.md | 架构设计:分层概览、核心模块架构、内存管理、测试策略 |
| Doc/SRV-服务端架构.md | 服务端业务架构:服务层设计、核心业务流程(登录/注册/注销/心跳/升级/事件上报/指令下发)、在线会话生命周期、集群部署 |
| Doc/功能清单.md | 功能追踪:61 个功能点的实现/测试/注释状态 |
| Doc/竞品分析.md | 竞品分析:RPC 框架对比 + IoT 指令下发对比矩阵 |
| Doc/SRMP.MD | SRMP 协议规范 |
| Doc/RPC内存管理设计.md | 零拷贝内存管理 |
| Doc/自动更新机制.md | 自动更新全链路设计 |
| Doc/重试策略.md | 重试策略:IRetryPolicy 接口与指数退避示例 |
亮点
| 核心能力 | 说明 |
|---|---|
| RPC 核心框架 | SRMP 协议、JSON/二进制编解码、请求处理流水线、客户端/服务端、Cluster 连接管理、元数据传递、重试策略、服务端全链路异步化、TraceId 调用链追踪 |
| STRM 流式调用 | Server-Streaming:IAsyncEnumerable<T> 逐条推送,SRMP + SSE 双协议 |
| CLNT 客户端基类 | 登录/心跳/升级/指令/事件一站式封装,WS/SSE 双通道自动切换 |
| UPGD 自动更新 | 检测→下载→校验→解压→覆盖→重启全链路 |
| SRV 服务端基础 | ApiController/BaseController/BaseDeviceController、TokenService、IDeviceService |
| CMD 指令下发 | SessionManager + 事件总线广播 + WS/SSE/Ping 多通道 |
快速开始
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 / net5.0 ~ net10.0 |
与其它 NewLife 组件协同
| 组件 | 协同价值 |
|---|---|
| NewLife.Core | 日志、配置、序列化、对象池、TimerX、性能追踪 |
| NewLife.Net | 高性能网络栈、WebSocket/编码器、端口复用 |
| NewLife.Redis | 分布式缓存 / 消息队列,扩展会话共享或推送 fanout |
| Stardust | 节点注册、配置中心、APM、发布中心;可托管 ApiServer 节点 |
| AntJob | 使用 ClientBase 接入任务调度与分布式计算 |
| NewLife.MQTT / Modbus / IoT | 设备层协议采集后通过 Remoting 上行 |
贡献与反馈
欢迎:Bug 反馈 / 性能优化 PR / 新协议编解码 / 控制器示例 / 文档补充。 Issue 讨论请尽量提供:运行环境、目标框架、最小可复现代码、日志摘要。
新生命项目矩阵
各项目默认支持 net9.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 | 分布式大数据计算平台 |
| 等等 | - | 更多参见官网 |
团队与版权
新生命团队(NewLife)成立于 2002 年,80+ 开源项目,NuGet 累计下载 400+ 万。全部项目采用 MIT 协议,可自由修改再发行(无需声明来源)。
网站:https://newlifex.com
开源:https://github.com/NewLifeX
QQ群:1600800 / 1600838
新生命团队始于2002年,部分开源项目具有20年以上历史,源码库保留2010年以来全部记录。
微信公众号:
License
MIT © NewLife. 欢迎商用与二次开发。
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 is compatible. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
| .NET Framework | net45 is compatible. net451 was computed. net452 was computed. net46 was computed. net461 is compatible. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.5
- NewLife.Core (>= 11.18.2026.801)
-
.NETFramework 4.6.1
- NewLife.Core (>= 11.18.2026.801)
-
.NETStandard 2.0
- NewLife.Core (>= 11.18.2026.801)
-
.NETStandard 2.1
- NewLife.Core (>= 11.18.2026.801)
-
net10.0
- NewLife.Core (>= 11.18.2026.801)
-
net5.0
- NewLife.Core (>= 11.18.2026.801)
-
net6.0
- NewLife.Core (>= 11.18.2026.801)
-
net7.0
- NewLife.Core (>= 11.18.2026.801)
-
net8.0
- NewLife.Core (>= 11.18.2026.801)
-
net9.0
- NewLife.Core (>= 11.18.2026.801)
NuGet packages (8)
Showing the top 5 NuGet packages that depend on NewLife.Remoting:
| Package | Downloads |
|---|---|
|
NewLife.Stardust
星尘分布式服务框架核心库。提供配置中心、注册中心、服务发现、全链路追踪、APM性能监控、日志中心等客户端SDK,支持配置拉取、服务注册与发现、调用追踪、性能和日志上报。 |
|
|
NewLife.MQTT
纯国产自主MQTT 3.1/3.1.1/5.0完整协议实现,MqttClient客户端与MqttServer服务端一体化。六种传输TCP/TLS/WebSocket/WSS/QUIC/UDP;内置集群、桥接、规则引擎、WebHook、ACL、$SYS等企业功能免费;零第三方依赖,MIT开源,信创合规 |
|
|
NewLife.Net
高性能网络通信框架,支持SRMP协议、单机千万级吞吐、百万级连接。提供NetServer/NetClient等通讯组件,可用于构建高可靠网络服务。 |
|
|
NewLife.AntJob
AntJob 分布式任务调度系统核心 SDK,提供高吞吐量的任务切片、可靠重试与弹性伸缩能力。 |
|
|
NewLife.Remoting.Extensions
提供设备接入控制器、令牌服务与会话管理扩展 |
GitHub repositories (7)
Showing the top 7 popular GitHub repositories that depend on NewLife.Remoting:
| Repository | Stars |
|---|---|
|
NewLifeX/X
Core basic components: log (file / network), configuration (XML / JSON / HTTP), cache (memory / redis), network (TCP / UDP / HTTP), RPC framework, serialization (binary / XML / JSON), APM performance tracking. 核心基础组件,日志(文件/网络)、配置(XML/Json/Http)、缓存(内存/Redis)、网络(Tcp/Udp/Http)、RPC框架、序列化(Binary/XML/Json)、APM性能追踪。
|
|
|
NewLifeX/AntJob
高吞吐 .NET 分布式任务与实时数据调度平台:时间/数据/消息/Cron/SQL/脚本切片,自动重试与弹性扩缩,回溯补算 + Web 控制台。High‑throughput .NET distributed job & real‑time scheduler with fine‑grained slicing, retries, elastic scaling & web console.
|
|
|
NewLifeX/Stardust
星尘,轻量级分布式服务框架。配置中心、集群管理、远程自动发布、服务治理。服务自动注册和发现,负载均衡,动态伸缩,故障转移,性能监控。
|
|
|
NewLifeX/XCoder
新生命码神工具,代码生成、网络工具、API工具、串口工具、正则工具、图标工具、加解密工具、地图接口。
|
|
|
NewLifeX/NewLife.Net
单机吞吐2266万tps的网络通信框架
|
|
|
NewLifeX/NewLife.MQTT
最流行的物联网通信协议MQTT,包括客户端、服务端和Web管理平台
|
|
|
NewLifeX/NewLife.XCode
20 年演进的 .NET 高性能数据中间件,聚焦极致性能、海量数据、自动建模/迁移、多级缓存、自动分表分库,支持 MySQL/SQLite/SqlServer/Oracle/Postgresql/达梦 等
|
| Version | Downloads | Last Updated |
|---|---|---|
| 3.9.2026.801 | 789 | 8/1/2026 |
| 3.9.2026.801-beta1701 | 113 | 8/1/2026 |
| 3.8.2026.726-beta1405 | 186 | 7/26/2026 |
| 3.8.2026.723-beta1615 | 120 | 7/23/2026 |
| 3.8.2026.722-beta1157 | 111 | 7/22/2026 |
| 3.8.2026.720-beta1503 | 115 | 7/20/2026 |
| 3.8.2026.716-beta0416 | 621 | 7/16/2026 |
| 3.8.2026.714-beta1144 | 121 | 7/14/2026 |
| 3.8.2026.714-beta0020 | 127 | 7/14/2026 |
| 3.8.2026.706 | 1,116 | 7/6/2026 |
| 3.8.2026.706-beta0919 | 139 | 7/6/2026 |
| 3.7.2026.705-beta0241 | 131 | 7/5/2026 |
| 3.7.2026.608-beta1321 | 140 | 6/8/2026 |
| 3.7.2026.607-beta0438 | 131 | 6/7/2026 |
| 3.7.2026.606-beta1713 | 135 | 6/6/2026 |
| 3.7.2026.601 | 1,675 | 6/1/2026 |
| 3.7.2026.601-beta0657 | 139 | 6/1/2026 |
| 3.7.2026.524-beta0246 | 138 | 5/24/2026 |
| 3.7.2026.518-beta1101 | 134 | 5/18/2026 |
| 3.7.2026.501 | 2,971 | 5/1/2026 |
服务端请求处理全链路异步化,消除线程阻塞,提升高并发吞吐;新增 IAsyncApiHandler 标记接口,消除处理器路由反射;响应消息注入 TraceId,支持调用链追踪;节点在线与设备在线表新增登录时间字段;增强 WebSocket 心跳判死与会话管理机制;重构设备服务登录与在线持久化流程,统一长连接通知处理;优化 Headers 注入逻辑,避免数组/列表参数转换为字典导致数据丢失;修复客户端与通道代码缺陷,增强健壮性