NewLife.Remoting.Extensions 3.9.2026.801

dotnet add package NewLife.Remoting.Extensions --version 3.9.2026.801
                    
NuGet\Install-Package NewLife.Remoting.Extensions -Version 3.9.2026.801
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="NewLife.Remoting.Extensions" Version="3.9.2026.801" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="NewLife.Remoting.Extensions" Version="3.9.2026.801" />
                    
Directory.Packages.props
<PackageReference Include="NewLife.Remoting.Extensions" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add NewLife.Remoting.Extensions --version 3.9.2026.801
                    
#r "nuget: NewLife.Remoting.Extensions, 3.9.2026.801"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package NewLife.Remoting.Extensions@3.9.2026.801
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=NewLife.Remoting.Extensions&version=3.9.2026.801
                    
Install as a Cake Addin
#tool nuget:?package=NewLife.Remoting.Extensions&version=3.9.2026.801
                    
Install as a Cake Tool

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. 欢迎商用与二次开发。

Product Compatible and additional computed target framework versions.
.NET 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on NewLife.Remoting.Extensions:

Package Downloads
AntWeb

AntJob 可视化管理平台,提供任务调度、监控、日志查询和集群管理功能。

GitHub repositories (2)

Showing the top 2 popular GitHub repositories that depend on NewLife.Remoting.Extensions:

Repository Stars
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
星尘,轻量级分布式服务框架。配置中心、集群管理、远程自动发布、服务治理。服务自动注册和发现,负载均衡,动态伸缩,故障转移,性能监控。
Version Downloads Last Updated
3.9.2026.801 43 8/1/2026
3.9.2026.801-beta1701 34 8/1/2026
3.8.2026.726-beta1405 90 7/26/2026
3.8.2026.723-beta1615 99 7/23/2026
3.8.2026.722-beta1157 93 7/22/2026
3.8.2026.720-beta1503 91 7/20/2026
3.8.2026.716-beta0416 128 7/16/2026
3.8.2026.714-beta1144 88 7/14/2026
3.8.2026.714-beta0020 94 7/14/2026
3.8.2026.706 122 7/6/2026
3.8.2026.706-beta0919 103 7/6/2026
3.7.2026.705-beta0241 102 7/5/2026
3.7.2026.608-beta1321 106 6/8/2026
3.7.2026.607-beta0438 103 6/7/2026
3.7.2026.606-beta1713 113 6/6/2026
3.7.2026.601 124 6/1/2026
3.7.2026.601-beta0657 102 6/1/2026
3.7.2026.524-beta0246 109 5/24/2026
3.7.2026.518-beta1101 109 5/18/2026
3.7.2026.501 196 5/1/2026
Loading failed

服务端请求处理全链路异步化,消除线程阻塞,提升高并发吞吐;新增 IAsyncApiHandler 标记接口,消除处理器路由反射;响应消息注入 TraceId,支持调用链追踪;节点在线与设备在线表新增登录时间字段;增强 WebSocket 心跳判死与会话管理机制;重构设备服务登录与在线持久化流程,统一长连接通知处理;优化 Headers 注入逻辑,避免数组/列表参数转换为字典导致数据丢失;修复客户端与通道代码缺陷,增强健壮性