![]() |
VOOZH | about |
dotnet add package NewLife.Remoting.Extensions --version 3.7.2026.601
NuGet\Install-Package NewLife.Remoting.Extensions -Version 3.7.2026.601
<PackageReference Include="NewLife.Remoting.Extensions" Version="3.7.2026.601" />
<PackageVersion Include="NewLife.Remoting.Extensions" Version="3.7.2026.601" />Directory.Packages.props
<PackageReference Include="NewLife.Remoting.Extensions" />Project file
paket add NewLife.Remoting.Extensions --version 3.7.2026.601
#r "nuget: NewLife.Remoting.Extensions, 3.7.2026.601"
#:package NewLife.Remoting.Extensions@3.7.2026.601
#addin nuget:?package=NewLife.Remoting.Extensions&version=3.7.2026.601Install as a Cake Addin
#tool nuget:?package=NewLife.Remoting.Extensions&version=3.7.2026.601Install as a Cake Tool
👁 GitHub top language
👁 GitHub License
👁 Nuget Downloads
👁 Nuget
👁 Nuget (with prereleases)
👁 Nuget Downloads
👁 Nuget
👁 Nuget (with prereleases)
简单、统一、可扩展、跨多目标框架 (net45 ~ net9.0) 的远程通信基础设施。单一生态内同时覆盖:
- 二进制高性能 RPC (长连接 / 主动下发 / 海量连接与吞吐)
- 标准 HTTP / REST (易集群 / 生态丰富 / 负载均衡)
- WebSocket 指令下发与事件推送
- SRMP (Simple Remote Message Protocol) 远程消息协议
- 统一应用客户端基类 ClientBase(登录 / 心跳 / 升级 / 指令 / 事件)
源码:https://github.com/NewLifeX/NewLife.Remoting
NuGet:NewLife.Remoting/NewLife.Remoting.Extensions
NewLife.Remoting.Extensions 提供 ASP.NET Core 设备接入基类、令牌服务、会话管理、模型绑定器 +-------------------+ +--------------------+
| 客户端 ClientBase | | 服务端 ApiServer |
| (ApiClient/HTTP) | <--- SRMP/TCP ---> | 控制器/Handler |
+---------+---------+ +----+-----------+----+
| HTTP/REST 负载均衡 | 注册服务/依赖注入
v v
+-------------------+ WebSocket +--------------------------+
| ApiHttpClient |<------------->| BaseDeviceController |
+-------------------+ 指令/事件 +-----------+--------------+
| TokenService
| SessionManager
v
+---------------+
| 业务/存储/缓存 |
+---------------+
| 维度 | RPC 架构 | HTTP 架构 |
|---|---|---|
| 连接模型 | 长连接 (TCP/UDP) | 短连接 + 可选 WebSocket |
| 吞吐/延迟 | 极致性能/低延迟 | 受 HTTP 栈 & 负载均衡影响 |
| 推送能力 | 服务端直接下发 | 需 WebSocket 通道 |
| 负载均衡 | 客户端挑选一个节点保持 | 请求级(云原生友好) |
| 二进制大包 | 友好(自定义序列化) | 不适合(默认 JSON) |
| 接入复杂度 | 需要 SDK/协议 | 任意 HTTP 客户端即可 |
| 典型场景 | 任务调度、物联网网关、工业采集 | 设备管理平台、通用 REST、混合接入 |
dotnet new install NewLife.Templates
dotnet new rpcserver --name RpcServer
cd RpcServer
dotnet run
核心代码(示意):
var server = new ApiServer(12345);
server.Register(new MyController(), null); // 暴露控制器全部 Action
server.Start();
public class MyController : ApiController
{
public String Ping(String name) => $"Hello {name}, {DateTime.Now:HH:mm:ss}";
}
var client = new ApiClient("tcp://127.0.0.1:12345");
await client.OpenAsync();
var rs = await client.InvokeAsync<String>("My/Ping", new { name = "dev" });
Console.WriteLine(rs);
Program.cs 中:
builder.Services.AddRemoting();
var app = builder.Build();
app.UseRemoting();
app.MapControllers();
app.Run();
public class DeviceController : BaseDeviceController
{
public DeviceController(IServiceProvider p) : base(p) { }
}
客户端使用 ApiHttpClient 登录 + 周期 Ping,服务端可通过 WebSocket 通道下发指令。
ClientBase 抽象了设备 / 节点 / 应用常见生命周期:
SRMP (Simple Remote Message Protocol):
Doc/SRMP.MD。| 指标 | 典型值 | 实验峰值 | 说明 |
|---|---|---|---|
| TCP 长连接数 | 10,000 | 4,000,000 | 依赖内核与系统参数调优 |
| RPC 吞吐 | 100,000 TPS | 22,660,000 TPS | 简单回显场景,基于 NewLife.Net |
| HTTP 并发连接 | 1,000 | (可水平扩展) | 受 Kestrel/网关限制 |
| 心跳开销 | 微秒级 | - | 轻量协议 + 对象池复用 |
建议结合实际业务压测,关注序列化体积与对象分配。
可扩展点:
| 组件 | 协同价值 |
|---|---|
| NewLife.Core | 日志、配置、序列化、对象池、TimerX、性能追踪 |
| NewLife.Net | 高性能网络栈、WebSocket/编码器、端口复用 |
| NewLife.Redis | 分布式缓存 / 消息队列,扩展会话共享或推送 fanout |
| Stardust | 节点注册、配置中心、APM、发布中心;可托管 ApiServer 节点 |
| AntJob | 使用 ClientBase 接入任务调度与分布式计算 |
| NewLife.MQTT / Modbus / IoT | 设备层协议采集后通过 Remoting 上行 |
完整生态与说明见下方 新生命项目矩阵。Remoting 作为“通信基座”横向衔接 网关设备接入 / 调度平台 / 分布式服务治理 / IoT 协议栈。
欢迎:Bug 反馈 / 性能优化 PR / 新协议编解码 / 控制器示例 / 文档补充。
提交前请阅读 .github/copilot-instructions.md 了解编码规范 & Multi‑TFM 原则。
Issue 讨论请尽量提供:运行环境、目标框架、最小可复现代码、日志摘要。
# 安装模板
dotnet new install NewLife.Templates
# 创建 RPC 服务端骨架
dotnet new rpcserver --name RpcServer
# 运行
dotnet run
各项目默认支持 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年以来全部记录。
微信公众号:
请关注 Release / Tag 说明或提交历史。后续可引入 CHANGELOG 简述关键性能与兼容性变更。
MIT © NewLife. 欢迎商用与二次开发。
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net6.0 net6.0 is compatible. net6.0-android net6.0-android was computed. net6.0-ios net6.0-ios was computed. net6.0-maccatalyst net6.0-maccatalyst was computed. net6.0-macos net6.0-macos was computed. net6.0-tvos net6.0-tvos was computed. net6.0-windows net6.0-windows was computed. net7.0 net7.0 is compatible. net7.0-android net7.0-android was computed. net7.0-ios net7.0-ios was computed. net7.0-maccatalyst net7.0-maccatalyst was computed. net7.0-macos net7.0-macos was computed. net7.0-tvos net7.0-tvos was computed. net7.0-windows net7.0-windows was computed. net8.0 net8.0 is compatible. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 is compatible. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 is compatible. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
Showing the top 1 NuGet packages that depend on NewLife.Remoting.Extensions:
| Package | Downloads |
|---|---|
|
AntWeb
AntJob 可视化管理平台,提供任务调度、监控、日志查询和集群管理功能。 |
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.7.2026.608-beta1321 | 88 | 6/8/2026 |
| 3.7.2026.607-beta0438 | 88 | 6/7/2026 |
| 3.7.2026.606-beta1713 | 94 | 6/6/2026 |
| 3.7.2026.601 | 99 | 6/1/2026 |
| 3.7.2026.601-beta0657 | 91 | 6/1/2026 |
| 3.7.2026.524-beta0246 | 97 | 5/24/2026 |
| 3.7.2026.518-beta1101 | 99 | 5/18/2026 |
| 3.7.2026.501 | 152 | 5/1/2026 |
| 3.7.2026.501-beta0531 | 87 | 5/1/2026 |
| 3.7.2026.402 | 153 | 4/2/2026 |
| 3.7.2026.402-beta0859 | 100 | 4/2/2026 |
| 3.7.2026.319-beta0807 | 111 | 3/19/2026 |
| 3.7.2026.307-beta0002 | 108 | 3/7/2026 |
| 3.7.2026.305-beta0002 | 106 | 3/5/2026 |
| 3.7.2026.303-beta0002 | 105 | 3/3/2026 |
| 3.7.2026.302 | 264 | 3/2/2026 |
| 3.7.2026.302-beta0437 | 111 | 3/2/2026 |
| 3.7.2026.301-beta0602 | 111 | 3/1/2026 |
| 3.7.2026.225-beta1902 | 111 | 2/25/2026 |
| 3.7.2026.225-beta1345 | 114 | 2/25/2026 |
修复响应消息重复解码导致的处理异常;修复缓冲区脏读问题并提升并发稳定性;优化ApiHandler参数默认值处理逻辑;优化字符串处理并升级依赖组件