NewLife.Remoting 3.9.2026.901

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

GitHub top language GitHub License Nuget Downloads Nuget Nuget (with prereleases)

Nuget Downloads Nuget Nuget (with prereleases)

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 分布式大数据计算平台
等等 - 更多参见官网

团队与版权

XCode

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

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

微信公众号:
智能大石头


License

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

Showing the top 20 packages that depend on NewLife.Remoting.

Packages Downloads
NewLife.Remoting.Extensions
提供设备接入控制器、令牌服务与会话管理扩展
2
NewLife.AI
多协议、多模型适配的 AI 基础设施库,支持 OpenAI/Anthropic/Gemini 等 33 个服务商,提供函数调用、图像生成、MCP 工具调用等能力
2
NewLife.Stardust
星尘,分布式服务框架。节点管理,监控中心,配置中心,发布中心,注册中心
2
NewLife.Stardust
星尘,分布式服务框架。节点管理,监控中心,配置中心,发布中心,注册中心
1
NewLife.AI
AI基础设施
1
NewLife.AI
多协议、多模型适配的 AI 基础设施库,支持 OpenAI/Anthropic/Gemini 等 33 个服务商,提供函数调用、图像生成、MCP 工具调用等能力
1
NewLife.Stardust
星尘分布式服务框架核心库。提供配置中心、注册中心、服务发现、全链路追踪、APM性能监控、日志中心等客户端SDK,支持配置拉取、服务注册与发现、调用追踪、性能和日志上报。
1

登录失败自动重试,配合滚动登录超时设计,服务端冷启动时自动恢复;ZeroServer/IoTZero 示例客户端改用 Open 规范用法,响应总线自测恢复执行;消除编译警告;升级 NewLife.Core 依赖

.NET 10.0

.NET Framework 4.5

.NET Framework 4.6.1

.NET 5.0

.NET 6.0

.NET 7.0

.NET 8.0

.NET 9.0

.NET Standard 2.0

.NET Standard 2.1

Version Downloads Last updated
3.9.2026.901 1 2026/9/16
3.9.2026.901-beta0431 1 2026/9/16
3.9.2026.801 1 2026/9/16
3.9.2026.801-beta1701 1 2026/9/16
3.8.2026.726-beta1405 1 2026/9/16
3.8.2026.723-beta1615 1 2026/9/16
3.8.2026.722-beta1157 1 2026/9/16
3.8.2026.720-beta1503 1 2026/9/16
3.8.2026.716-beta0416 1 2026/9/16
3.8.2026.714-beta1144 1 2026/9/16
3.8.2026.714-beta0020 1 2026/9/16
3.8.2026.706 1 2026/9/16
3.8.2026.706-beta0919 1 2026/9/16
3.7.2026.705-beta0241 1 2026/9/16
3.7.2026.608-beta1321 1 2026/9/16
3.7.2026.607-beta0438 1 2026/9/16
3.7.2026.606-beta1713 1 2026/9/16
3.7.2026.601 1 2026/9/16
3.7.2026.601-beta0657 1 2026/9/16
3.7.2026.524-beta0246 1 2026/9/16
3.7.2026.518-beta1101 1 2026/9/16
3.7.2026.501 1 2026/9/16
3.7.2026.501-beta0531 1 2026/9/16
3.7.2026.402 1 2026/9/17
3.7.2026.402-beta0859 1 2026/9/16
3.7.2026.319-beta0807 1 2026/9/16
3.7.2026.307-beta0002 1 2026/9/16
3.7.2026.305-beta0002 1 2026/9/16
3.7.2026.303-beta0002 1 2026/9/16
3.7.2026.302 1 2026/9/16
3.7.2026.302-beta0437 1 2026/9/16
3.7.2026.301-beta0602 1 2026/9/16
3.7.2026.225-beta1902 1 2026/9/16
3.7.2026.225-beta1345 1 2026/9/16
3.7.2026.201 1 2026/9/17
3.7.2026.201-beta0243 1 2026/9/16
3.7.2026.125-beta1509 1 2026/9/16
3.7.2026.125-beta0150 1 2026/9/16
3.7.2026.112-beta0604 1 2026/9/16
3.7.2026.111-beta1518 1 2026/9/16
3.7.2026.110-beta1630 1 2026/9/16
3.7.2026.108-beta1612 1 2026/9/16
3.7.2026.102 1 2026/9/17
3.7.2026.102-beta1547 1 2026/9/16
3.6.2025.1231-beta0314 1 2026/9/16
3.6.2025.1230-beta0418 1 2026/9/16
3.6.2025.1230-beta0002 1 2026/9/16
3.6.2025.1226-beta0712 1 2026/9/16
3.6.2025.1226-beta0602 1 2026/9/16
3.6.2025.1220-beta0622 1 2026/9/16
3.6.2025.1218-beta0318 1 2026/9/16
3.6.2025.1214-beta1229 1 2026/9/16
3.6.2025.1213-beta0158 1 2026/9/16
3.6.2025.1212-beta0705 1 2026/9/16
3.6.2025.1204-beta1523 1 2026/9/16
3.6.2025.1203-beta1519 1 2026/9/16
3.6.2025.1112 2 2026/9/15
3.5.2025.1106-beta0001 1 2026/9/16
3.5.2025.1105-beta1318 1 2026/9/16
3.5.2025.1105-beta0602 1 2026/9/16
3.5.2025.1026-beta0602 1 2026/9/16
3.5.2025.1001 1 2026/9/16
3.5.2025.1001-beta1720 1 2026/9/16
3.5.2025.921-beta1556 1 2026/9/16
3.5.2025.915-beta1636 1 2026/9/16
3.5.2025.914-beta1424 1 2026/9/16
3.5.2025.903-beta1229 1 2026/9/16
3.5.2025.901 1 2026/9/16
3.5.2025.901-beta1137 1 2026/9/16
3.5.2025.901-beta0603 1 2026/9/16
3.5.2025.830-beta1611 1 2026/9/16
3.5.2025.827-beta1704 1 2026/9/16
3.5.2025.826-beta0442 1 2026/9/16
3.5.2025.825-beta2351 1 2026/9/16
3.5.2025.824-beta1236 1 2026/9/16
3.5.2025.822-beta0944 1 2026/9/16
3.5.2025.820-beta1825 1 2026/9/16
3.5.2025.818-beta1634 1 2026/9/16
3.5.2025.812-beta1259 1 2026/9/16
3.4.2025.812-beta1032 1 2026/9/16
3.4.2025.812-beta1003 1 2026/9/16
3.4.2025.808-beta1105 1 2026/9/16
3.4.2025.805-beta1659 1 2026/9/16
3.4.2025.805-beta1531 1 2026/9/16
3.4.2025.801 1 2026/9/16
3.4.2025.801-beta0218 1 2026/9/16
3.4.2025.731-beta0004 1 2026/9/16
3.4.2025.722-beta0820 1 2026/9/16
3.4.2025.719-beta0004 1 2026/9/15
3.4.2025.713-beta1545 1 2026/9/16
3.4.2025.713-beta1351 1 2026/9/16
3.4.2025.713-beta1335 1 2026/9/16
3.3.2025.709-beta0306 1 2026/9/16
3.3.2025.701 1 2026/9/16
3.3.2025.701-beta0355 1 2026/9/16
3.3.2025.616-beta1415 1 2026/9/16
3.3.2025.610-beta0350 1 2026/9/16
3.3.2025.601 1 2026/9/16
3.3.2025.601-beta0800 1 2026/9/16
3.3.2025.527-beta1716 1 2026/9/16
3.3.2025.521-beta1200 1 2026/9/16
3.3.2025.519-beta1620 1 2026/9/16
3.3.2025.515-beta1338 1 2026/9/16
3.3.2025.514-beta0417 1 2026/9/16
3.3.2025.501 1 2026/9/16
3.3.2025.501-beta1629 1 2026/9/16
3.3.2025.428-beta0633 1 2026/9/16
3.3.2025.426-beta1312 1 2026/9/16
3.3.2025.417-beta1306 1 2026/9/16
3.3.2025.415-beta1725 1 2026/9/16
3.3.2025.415-beta1203 1 2026/9/16
3.3.2025.415-beta1143 1 2026/9/16
3.3.2025.412-beta0428 1 2026/9/16
3.3.2025.401 1 2026/9/16
3.3.2025.401-beta0524 1 2026/9/16
3.3.2025.329-beta1224 1 2026/9/16
3.3.2025.301 1 2026/9/16
3.3.2025.301-beta0131 1 2026/9/16
3.3.2025.226-beta0837 1 2026/9/16
3.3.2025.225-beta1354 1 2026/9/16
3.3.2025.225-beta1254 1 2026/9/16
3.3.2025.225-beta0533 1 2026/9/16
3.3.2025.224-beta1623 1 2026/9/16
3.2.2025.224-beta1147 1 2026/9/16
3.2.2025.221-beta0925 1 2026/9/16
3.2.2025.212-beta1257 1 2026/9/16
3.2.2025.207-beta0905 1 2026/9/16
3.2.2025.201 1 2026/9/16
3.2.2025.201-beta1615 1 2026/9/16
3.2.2025.109-beta1236 1 2026/9/16
3.2.2025.103-beta1513 1 2026/9/16
3.2.2025.101 1 2026/9/16
3.2.2025.101-beta0602 1 2026/9/16
3.2.2024.1225-beta1616 1 2026/9/16
3.2.2024.1206 1 2026/9/16
3.1.2024.1103-beta0605 1 2026/9/16
3.1.2024.1101 1 2026/9/16
3.1.2024.1002 1 2026/9/16
3.1.2024.923-beta0435 1 2026/9/16
3.1.2024.914-beta0002 1 2026/9/16
3.1.2024.913-beta0902 1 2026/9/16
3.1.2024.912-beta0006 1 2026/9/16
3.0.2024.902 1 2026/9/16
3.0.2024.812-beta0813 1 2026/9/16
3.0.2024.811-beta0608 1 2026/9/16
3.0.2024.806-beta0146 1 2026/9/16
3.0.2024.805 1 2026/9/17
3.0.2024.729-beta0815 1 2026/9/16
3.0.2024.710-beta1226 1 2026/9/16
3.0.2024.708 1 2026/9/17
3.0.2024.708-beta1003 1 2026/9/16
3.0.2024.703-beta0048 1 2026/9/16
3.0.2024.701 1 2026/9/17
3.0.2024.701-beta0219 1 2026/9/16
3.0.2024.630-beta0606 1 2026/9/16
3.0.2024.628-beta0626 1 2026/9/16
3.0.2024.627-beta1636 1 2026/9/16
3.0.2024.627-beta0009 1 2026/9/16
3.0.2024.626-beta1337 1 2026/9/16
3.0.2024.625-beta1714 1 2026/9/16
3.0.2024.625-beta1600 1 2026/9/16
3.0.2024.625-beta0716 1 2026/9/16
3.0.2024.624-beta1110 1 2026/9/16
3.0.2024.624-beta0627 1 2026/9/16
3.0.2024.624-beta0109 1 2026/9/16
3.0.2024.623-beta0607 1 2026/9/16
3.0.2024.622-beta1613 1 2026/9/16
2.8.2024.428-beta0930 1 2026/9/16
2.8.2024.402 1 2026/9/16
2.7.2024.202 1 2026/9/16
2.7.2024.101 1 2026/9/16
2.7.2024.101-beta0500 1 2026/9/16
2.7.2023.1218-beta1127 1 2026/9/16
2.7.2023.1209-beta1634 1 2026/9/16
2.7.2023.1201 1 2026/9/16
2.7.2023.1201-beta0310 1 2026/9/16
2.6.2023.1128-beta0013 1 2026/9/16
2.6.2023.1111-beta1140 1 2026/9/16
2.6.2023.1110-beta1323 1 2026/9/16
2.5.2023.1102 1 2026/9/16
2.5.2023.1102-beta0640 1 2026/9/16
2.5.2023.1101-beta0904 1 2026/9/16
2.5.2023.1031-beta0703 1 2026/9/16
2.4.2023.1028-beta0057 1 2026/9/16
2.4.2023.1001 1 2026/9/16
2.3.2023.907 1 2026/9/16
2.3.2023.903-beta1652 1 2026/9/16
2.3.2023.902-beta1701 1 2026/9/16
2.2.2023.902-beta1549 1 2026/9/16
2.2.2023.814 1 2026/9/16
2.2.2023.814-beta1331 1 2026/9/16
2.2.2023.707 1 2026/9/16
2.2.2023.707-beta0102 1 2026/9/16
2.1.2023.705-beta1042 1 2026/9/16
2.1.2023.704-beta0222 1 2026/9/16
2.1.2023.601 1 2026/9/16
2.1.2023.601-beta1433 1 2026/9/16
2.1.2023.516-beta0658 1 2026/9/16
2.1.2023.512 1 2026/9/16
2.1.2023.512-beta1533 1 2026/9/16
2.1.2023.401 1 2026/9/16
2.1.2023.401-beta1728 1 2026/9/16
2.1.2023.325-beta0151 1 2026/9/16
2.1.2023.301 1 2026/9/16
2.1.2023.301-beta0446 1 2026/9/16
2.0.2023.218-beta0230 1 2026/9/16
2.0.2023.214-beta1534 1 2026/9/16
2.0.2023.203 1 2026/9/16
2.0.2023.203-beta1355 1 2026/9/16
2.0.2023.203-beta1201 1 2026/9/16
2.0.2023.101 1 2026/9/16
2.0.2023.101-beta0306 1 2026/9/16
2.0.2022.1223-beta0408 1 2026/9/16
2.0.2022.1201 1 2026/9/16
2.0.2022.1201-beta1441 1 2026/9/16
2.0.2022.1127-beta0246 1 2026/9/16
2.0.2022.1109-beta0328 1 2026/9/16
2.0.2022.1101 1 2026/9/16
2.0.2022.1101-beta0755 1 2026/9/16
2.0.2022.1004 1 2026/9/16
2.0.2022.1004-beta0332 1 2026/9/16
2.0.2022.901 1 2026/9/16
2.0.2022.901-beta0405 1 2026/9/16
2.0.2022.813-beta1441 1 2026/9/16
2.0.2022.810-beta0529 1 2026/9/16