DH.NRemoting.Extensions 4.0.2024.1113-beta0622

This is a prerelease version of DH.NRemoting.Extensions.
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package DH.NRemoting.Extensions --version 4.0.2024.1113-beta0622                
NuGet\Install-Package DH.NRemoting.Extensions -Version 4.0.2024.1113-beta0622                
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="DH.NRemoting.Extensions" Version="4.0.2024.1113-beta0622" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add DH.NRemoting.Extensions --version 4.0.2024.1113-beta0622                
#r "nuget: DH.NRemoting.Extensions, 4.0.2024.1113-beta0622"                
#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.
// Install DH.NRemoting.Extensions as a Cake Addin
#addin nuget:?package=DH.NRemoting.Extensions&version=4.0.2024.1113-beta0622&prerelease

// Install DH.NRemoting.Extensions as a Cake Tool
#tool nuget:?package=DH.NRemoting.Extensions&version=4.0.2024.1113-beta0622&prerelease                

DH.NRemoting - 协议通信库

协议通信库,包含RPC架构和HTTP架构,提供客户端服务端通信的基础框架,内置SRMP协议实现,并支持实现各种自定义协议。

参考目录:

RPC架构

客户端:ApiClient

服务端:ApiServer

应用客户端:ClientBase

特点:

  1. 服务端根据Action把请求转发给各个Controller,用法跟WebApi一致。
  2. 简单高性能,通信报文使用二进制序列化,中间没有任何损耗
  3. 接口出入参支持灵活的Json序列化(常规接口),同时也支持高效的二进制序列化(图片视频)
  4. TCP/UDP长会话,支持服务端主动下发消息
  5. 典型连接数,单机1万TCP长连接,最高400万
  6. 典型吞吐数,单机10万TPS,最高2266万TPS
  7. 服务端可寄宿于控制台、Web项目、桌面应用、IoT嵌入式应用
  8. 支持集群部署横向扩展,每个客户端跟其中一个服务端维持长连接,所有请求落到该服务器

代表性应用(蚂蚁调度AntJob):

  1. 客户端AntClient继承自ClientBase,通过Tcp/Udp等协议连接服务端ApiServer,进行登录、心跳等操作。
  2. 客户端使用应用AppId和AppSecret登录,获得令牌,后续无需携带或验证令牌,直到令牌过期重新登录。

HTTP架构

客户端:ApiHttpClient

服务端:ASP.NET WebApi

应用客户端:ClientBase

应用服务端:BaseDeviceController

特点:

  1. 标准ASP.NET WebApi作为服务端,重用现有技术栈,包括接口测试和集群部署管理。
  2. 客户端ApiHttpClient是标准HttpClient的进一步封装,支持多服务端地址负载均衡。
  3. 默认通信使用Json序列化,不适合传输文件、图片和视频等二进制数据。
  4. 服务端提供BaseController基类,封装了令牌验证等鉴权机制
  5. 服务端提供BaseDeviceController基类,封装常见的登录、心跳和更新等接口
  6. 通过WebSocket长连接实现指令下发,心跳保活
  7. 典型连接数,单机1000并发连接
  8. 典型吞吐数,单机1万TPS
  9. 服务端仅寄宿于 Kestrel和IIS
  10. 支持集群部署横向扩展,客户端每次请求都可能分流到不同应用服务器

代表性应用(轻量级IoT平台ZeroIoT):

  1. 客户端HttpDevice继承自ClientBase,通过Http/Https协议连接服务端WebApi,进行登录、注销、心跳和更新等操作。
  2. 客户端使用设备DeviceCode和DeviceSecret登录,获得令牌,后续每次请求头都需要带上令牌。
  3. 在心跳时检测并维持WebSocket长连接。

各项目默认支持net9.0/netstandard2.1/netstandard2.0/net4.5

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

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
4.0.2024.1218-beta1143 43 12/18/2024
4.0.2024.1213-beta0957 113 12/13/2024
4.0.2024.1209-beta0236 71 12/9/2024
4.0.2024.1206-beta0108 75 12/6/2024
4.0.2024.1204-beta0300 83 12/4/2024
4.0.2024.1201-beta0321 62 12/1/2024
4.0.2024.1126-beta0219 66 11/26/2024
4.0.2024.1123-beta0928 76 11/23/2024
4.0.2024.1119-beta0628 95 11/19/2024
4.0.2024.1119-beta0624 60 11/19/2024
4.0.2024.1119-beta0621 69 11/19/2024
4.0.2024.1113-beta0622 82 11/13/2024
3.91.2024.1112-beta0826 66 11/12/2024
3.91.2024.1109-beta0233 78 11/9/2024
3.91.2024.1104-beta0322 65 11/4/2024
3.91.2024.1104-beta0304 59 11/4/2024
3.91.2024.1104-beta0258 59 11/4/2024
3.91.2024.1101-beta0219 67 11/1/2024
3.91.2024.1101-beta0216 61 11/1/2024
3.91.2024.1031 94 10/31/2024
3.91.2024.1031-beta1030 68 10/31/2024
3.91.2024.1024-beta0802 80 10/24/2024
3.91.2024.1016-beta0106 79 10/16/2024
3.91.2024.1014-beta0111 76 10/14/2024
3.91.2024.1013-beta0821 81 10/13/2024
3.91.2024.1012-beta0242 69 10/12/2024
3.91.2024.1012-beta0240 60 10/12/2024
3.91.2024.1011-beta0145 85 10/11/2024
3.91.2024.1008-beta0825 90 10/8/2024
3.91.2024.1008-beta0243 96 10/8/2024
3.91.2024.925-beta0639 77 9/25/2024
3.91.2024.923-beta0253 81 9/23/2024
3.9.2024.9210003 95 9/21/2024
3.9.2024.9210002 94 9/21/2024
3.7.2024.923-beta0208 71 9/23/2024
3.7.2024.920-beta0123 84 9/20/2024
3.7.2024.918-beta0823 99 9/18/2024
3.7.2024.918-beta0813 73 9/18/2024
3.7.2024.918-beta0811 71 9/18/2024
3.7.2024.918-beta0806 76 9/18/2024
3.7.2024.913-beta0617 95 9/13/2024
3.7.2024.911-beta1205 108 9/11/2024
3.7.2024.907-beta0129 106 9/7/2024
3.7.2024.903-beta0222 105 9/3/2024
3.7.2024.828-beta0223 115 8/28/2024
3.7.2024.826-beta0156 115 8/26/2024
3.7.2024.820 148 8/20/2024
3.7.2024.820-beta0352 128 8/20/2024
3.7.2024.819-beta1413 117 8/19/2024
3.6.2024.8160165 125 8/16/2024
3.6.2024.8150164 123 8/15/2024
3.6.2024.8140163 123 8/14/2024
3.6.2024.8140162 120 8/14/2024
3.6.2024.8140161 116 8/14/2024
3.6.2024.8130160 116 8/13/2024
3.6.2024.8130159 115 8/13/2024
3.6.2024.8130158 117 8/13/2024
3.6.2024.8130156 114 8/13/2024
3.6.2024.8130155 119 8/13/2024
3.6.2024.8120153 116 8/12/2024
3.6.2024.8120151 117 8/12/2024
3.6.2024.8110150 115 8/11/2024
3.6.2024.8100148 115 8/10/2024
3.6.2024.8100147 118 8/9/2024
3.6.2024.8090146 114 8/9/2024
3.6.2024.8090145 115 8/9/2024
3.6.2024.8080141 98 8/8/2024
3.6.2024.8070140 100 8/7/2024
3.6.2024.8070139 103 8/7/2024
3.6.2024.8070138 106 8/7/2024
3.6.2024.8050137 78 8/5/2024
3.6.2024.8050135 83 8/5/2024
3.6.2024.8040134 68 12/13/2024
3.6.2024.8040133 78 8/4/2024
3.6.2024.8030132 75 8/3/2024
3.6.2024.8020131 78 8/2/2024
3.6.2024.8010128 91 8/1/2024
3.6.2024.7310126 65 7/31/2024
3.6.2024.7300125 69 7/30/2024
3.6.2024.7290124 84 7/29/2024
3.6.2024.7270123 91 7/27/2024
3.6.2024.7260122 99 7/26/2024
3.6.2024.7240120 100 7/24/2024
3.6.2024.7230119 104 7/23/2024
3.6.2024.7220118 124 7/22/2024
3.6.2024.7220114 109 7/22/2024
3.6.2024.7220113 104 7/22/2024
3.6.2024.7190112 96 7/19/2024
3.6.2024.7190111 105 7/19/2024
3.6.2024.7180110 98 7/18/2024
3.6.2024.7170109 111 7/17/2024
3.6.2024.7160108 106 7/16/2024
3.6.2024.7160107 104 7/16/2024
3.6.2024.7150106 113 7/15/2024
3.6.2024.7150105 106 7/15/2024
3.6.2024.7130104 108 7/13/2024
3.6.2024.7130103 103 7/13/2024
3.6.2024.7120102 100 7/12/2024
3.6.2024.7110101 105 7/11/2024
3.6.2024.7100100 97 7/10/2024
3.6.2024.7090099 98 7/9/2024
3.6.2024.7090098 96 7/9/2024
3.6.2024.7090097 85 7/9/2024
3.6.2024.7090096 100 7/8/2024
3.6.2024.7080095 102 7/8/2024
3.6.2024.7080094 90 7/8/2024
3.6.2024.7080091 89 7/8/2024
3.6.2024.7050090 91 7/5/2024
3.6.2024.7040089 112 7/4/2024
3.6.2024.7030088 108 7/3/2024
3.6.2024.7020087 96 7/2/2024
3.6.2024.7020086 111 7/2/2024
3.6.2024.7010085 107 7/1/2024
3.6.2024.7010084 105 7/1/2024
3.6.2024.6290083 111 6/29/2024
3.6.2024.6280082 107 6/28/2024
3.6.2024.6270081 105 6/27/2024
3.6.2024.6260080 101 6/26/2024
3.6.2024.6250079 93 6/25/2024
3.6.2024.6250078 100 6/25/2024
3.6.2024.6250077 105 6/24/2024
3.6.2024.6240076 81 6/24/2024
3.6.2024.6240075 100 6/24/2024
3.6.2024.6200074 97 6/20/2024
3.6.2024.6190073 108 6/19/2024
3.6.2024.6180072 116 6/18/2024
3.6.2024.6170071 116 6/17/2024
3.6.2024.6150070 114 6/15/2024
3.6.2024.6140069 112 6/14/2024
3.6.2024.6130068 115 6/13/2024
3.6.2024.6130067 105 6/13/2024
3.6.2024.6120062 101 6/12/2024
3.6.2024.6120061 99 6/12/2024
3.6.2024.6110060 97 6/11/2024
3.6.2024.6090059 107 6/9/2024
3.6.2024.6060058 105 6/6/2024
3.6.2024.6050057 106 6/5/2024
3.6.2024.6040056 118 6/4/2024
3.6.2024.6030055 94 6/3/2024
3.6.2024.5310054 108 5/31/2024
3.6.2024.5300053 109 5/30/2024
3.6.2024.5290052 117 5/29/2024
3.6.2024.5290051 109 5/29/2024
3.6.2024.5280050 102 5/28/2024
3.6.2024.5270049 110 5/27/2024
3.6.2024.5250048 115 5/25/2024
3.6.2024.5250047 119 5/25/2024
3.6.2024.5240046 118 5/24/2024
3.6.2024.5240045 114 5/24/2024
3.6.2024.5240044 121 5/24/2024
3.6.2024.5240043 122 5/24/2024
3.6.2024.5230039 108 5/23/2024
3.6.2024.5230038 112 5/23/2024
3.6.2024.5230037 118 5/23/2024
3.6.2024.5220036 113 5/23/2024
3.6.2024.5220035 112 5/22/2024
3.6.2024.5220034 114 5/22/2024
3.6.2024.5210033 124 5/21/2024
3.6.2024.5210032 114 5/21/2024
3.6.2024.5200031 110 5/20/2024
3.6.2024.5170030 125 5/17/2024
3.6.2024.5160029 96 5/16/2024
3.6.2024.5160028 125 5/16/2024
3.6.2024.5150027 99 5/15/2024
3.6.2024.5140026 99 5/14/2024
3.6.2024.5130025 77 5/13/2024
3.6.2024.5130024 92 5/13/2024
3.6.2024.5110024 88 5/11/2024
3.6.2024.5110023 76 5/11/2024
3.6.2024.5110022 89 5/11/2024
3.6.2024.5100021 91 5/10/2024
3.6.2024.5100020 93 5/10/2024
3.6.2024.5090019 101 5/9/2024
3.6.2024.5080018 99 5/8/2024
3.6.2024.5080017 96 5/8/2024
3.6.2024.5070016 88 5/7/2024
3.0.2024.819-beta1233 91 8/19/2024

第三代协议通信库,增强RPC,引入主流Http/WebSockt/WebApi应用级封装