![]() |
VOOZH | about |
dotnet add package SAEA.RPC --version 26.4.23.1
NuGet\Install-Package SAEA.RPC -Version 26.4.23.1
<PackageReference Include="SAEA.RPC" Version="26.4.23.1" />
<PackageVersion Include="SAEA.RPC" Version="26.4.23.1" />Directory.Packages.props
<PackageReference Include="SAEA.RPC" />Project file
paket add SAEA.RPC --version 26.4.23.1
#r "nuget: SAEA.RPC, 26.4.23.1"
#:package SAEA.RPC@26.4.23.1
#addin nuget:?package=SAEA.RPC&version=26.4.23.1Install as a Cake Addin
#tool nuget:?package=SAEA.RPC&version=26.4.23.1Install as a Cake Tool
๐ NuGet version
๐ License
| ไธญๆ็
ๅบไบ SAEA.Sockets IOCP ๆๆฏ็้ซๆง่ฝ RPC ๆกๆถ๏ผไบ่ฟๅถไผ ่พ๏ผๆง่ฝ่ฟ่ถ HTTP/JSON RPCใ
| ็ซ ่ | ๅ ๅฎน |
|---|---|
| โก 30็งๅฟซ้ๅผๅง | ๆ็ฎๅ็ไธๆ็คบไพ |
| ๐ฏ ๆ ธๅฟ็นๆง | ๆกๆถ็ไธป่ฆๅ่ฝ |
| ๐ ๆถๆ่ฎพ่ฎก | ็ปไปถๅ ณ็ณปไธ่ฐ็จๆต็จ |
| ๐ก ๅบ็จๅบๆฏ | ไฝๆถ้ๆฉ SAEA.RPC |
| ๐ ๆง่ฝๅฏนๆฏ | ไธ HTTP RPC ๅฏนๆฏ |
| โ ๅธธ่ง้ฎ้ข | FAQ ๅฟซ้่งฃ็ญ |
| ๐ง ๆ ธๅฟ็ฑป | ไธป่ฆ็ฑปไธ่ง |
| ๐ ไฝฟ็จ็คบไพ | ่ฏฆ็ปไปฃ็ ็คบไพ |
ๆๅฟซไธๆๆนๅผ๏ผๅช้3ๆญฅๅณๅฏ่ฟ่ก RPC ๆๅก๏ผ
dotnet add package SAEA.RPC
using SAEA.RPC;
[RPCService]
public class HelloService
{
public string SayHello(string name) => $"Hello, {name}!";
}
var provider = new ServiceProvider(port: 39654);
provider.Start();
var proxy = new RPCServiceProxy("rpc://127.0.0.1:39654");
var result = proxy.HelloService.SayHello("SAEA");
Console.WriteLine(result); // ่พๅบ: Hello, SAEA!
ๅฐฑ่ฟไน็ฎๅ๏ผ ๐ ไฝ ๅทฒ็ปๅฎ็ฐไบไธไธช้ซๆง่ฝ็ RPC ่ฟ็จ่ฐ็จ็ณป็ปใ
| ็นๆง | ่ฏดๆ | ไผๅฟ |
|---|---|---|
| ๐ฅ ๆ็ฎไฝฟ็จ | [RPCService] ๆ ่ฎฐๅณๅฏ |
้ถ้ ็ฝฎ๏ผๅ ่กไปฃ็ ๅฎๆๆๅกๆญๅปบ |
| โก ้ซๆง่ฝ IOCP | ๅบไบ SAEA.Sockets | ไธ็บงๅนถๅ๏ผไฝๅปถ่ฟๅๅบ |
| ๐ฆ ไบ่ฟๅถๅบๅๅ | Protobuf ้ซๆไผ ่พ | ๆฐๆฎ้ๅฐ๏ผๅบๅๅๅฟซ |
| ๐ ๅจๆไปฃ็ | ่ชๅจ็ๆๅฎขๆท็ซฏไปฃ็ | ๅ่ฐ็จๆฌๅฐๆนๆณไธๆ ท่ฐ็จ่ฟ็จๆๅก |
| ๐ก๏ธ AOP ่ฟๆปคๅจ | ActionFilterAttribute |
ๆฅๅฟใๆ้ใ็ผๅญ็ปไธๆฆๆช |
| ๐ก ๆๅก็ซฏๆจ้ | Notice<T> ๆจ้ๆถๆฏ |
ๆฏๆๅๅธ่ฎข้ ๆจกๅผ |
| โ๏ธ ่ด่ฝฝๅ่กก | ConsumerMultiplexer |
ๅคๆๅกๅฐๅ่ชๅจๅ่กก |
| ๐ ่ฟๆฅๆฑ | ้ฟ่ฟๆฅๅค็จ | ๅๅฐ่ฟๆฅๅผ้๏ผๆๅๆง่ฝ |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ SAEA.RPC ๆถๆ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Client ็ซฏ โ โ Server ็ซฏ โ โ
โ โ โ โ โ โ
โ โ โโโโโโโโโโโโโโโโโ โ โ โโโโโโโโโโโโโโโโโ โ โ
โ โ โRPCServiceProxyโ โ โ โ ServiceProviderโ โ โ
โ โ โ (ๅจๆไปฃ็) โ โ โ โ (ๆๅกๆไพ่
) โ โ โ
โ โ โโโโโโโโโฌโโโโโโโโ โ โ โโโโโโโโโฌโโโโโโโโ โ โ
โ โ โ โ โ โ โ โ
โ โ โโโโโโโโโผโโโโโโโโ โ โ โโโโโโโโโผโโโโโโโโ โ โ
โ โ โServiceConsumerโ โ โ โ [RPCService] โ โ โ
โ โ โ (ๆถ่ดน่
) โ โ โ โ (ๆๅก็ฑป) โ โ โ
โ โ โโโโโโโโโฌโโโโโโโโ โ โ โโโโโโโโโฌโโโโโโโโ โ โ
โ โ โ โ โ โ โ โ
โ โ โโโโโโโโโผโโโโโโโโ โ โ โโโโโโโโโผโโโโโโโโ โ โ
โ โ โConsumerMulti- โ โ โ โ RPCMapping โ โ โ
โ โ โ plexer(่ฟๆฅๆฑ ) โ โ โ โ (ๆๅกๆ ๅฐ) โ โ โ
โ โ โโโโโโโโโฌโโโโโโโโ โ โ โโโโโโโโโฌโโโโโโโโ โ โ
โ โโโโโโโโโโโโผโโโโโโโโโโโ โโโโโโโโโโโโผโโโโโโโโโโโ โ
โ โ โ โ
โ โโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โโโโโโโโโโผโโโโโโโโโ โ
โ โ SAEA.Sockets โ โ
โ โ (IOCP ไผ ่พ) โ โ
โ โโโโโโโโโโโโโโโโโโโ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ๅฎขๆท็ซฏ่ฐ็จๆต็จ:
Client Server
โ โ
โ proxy.Method(args) โ
โ โ โ
โ โโโโโโผโโโโโ โ
โ โ ๅจๆไปฃ็ โ โ
โ โ็ๆ่ฐ็จ โ โ
โ โโโโโโฌโโโโโ โ
โ โ โ
โ โโโโโโผโโโโโ โ
โ โProtobuf โ โ
โ โ ๅบๅๅ โ โ
โ โโโโโโฌโโโโโ โ
โ โ โ
โ โโโโโโผโโโโโ TCP/IOCP โโผโโโโโโโโโ
โ โๅ้่ฏทๆฑ โโโโโโโโโโโโโโโโบๆฅๆถ่ฏทๆฑ โ
โ โโโโโโโโโโโ โโโโโโฌโโโโโ
โ โ
โ โโโโโโโผโโโโโโ
โ โ RPCMappingโ
โ โ ๆฅๆพๆๅก โ
โ โโโโโโโฌโโโโโโ
โ โ
โ โโโโโโโผโโโโโโ
โ โ ่ฐ็จๆนๆณ โ
โ โๆง่ก้ป่พ โ
โ โโโโโโโฌโโโโโโ
โ โ
โ โโโโโโโผโโโโโโ
โ โProtobuf โ
โ โ ๅบๅๅ โ
โ โโโโโโโฌโโโโโโ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โโโโโโผโโโโโ โโโโโโผโโโโโ
โ โๆฅๆถๅๅบ โโโโโโโโโโโโโโโโคๅ้ๅๅบ โ
โ โโโโโโฌโโโโโ โโโโโโโโโโโ
โ โ
โ โโโโโโผโโโโโ
โ โProtobuf โ
โ โ ๅๅบๅๅโ
โ โโโโโโฌโโโโโ
โ โ
โ โโโโโโผโโโโโ
โ โ่ฟๅ็ปๆ โ
โ โโโโโโโโโโโ
โ โ
| ๅบๆฏ | ๆ่ฟฐ | ๆจ่็็ฑ |
|---|---|---|
| ๐ข ๅพฎๆๅก้ไฟก | ๆๅก้ด้ซๆง่ฝ่ฐ็จ | ไบ่ฟๅถไผ ่พ๏ผไฝๅปถ่ฟ๏ผ้ซๅๅ |
| ๐ฎ ๆธธๆๅ็ซฏ | ๆธธๆๆๅกๅจ้ด้ไฟก | IOCP ้ซๅนถๅ๏ผๅฎๆถๆงๅผบ |
| ๐ค ๅๅธๅผ็ณป็ป | ่็น้ดๅ่ฐ้ไฟก | ้ฟ่ฟๆฅๅค็จ๏ผๅๅฐๆกๆๅผ้ |
| ๐ ๅฎๆถๆฐๆฎๅค็ | ๆฐๆฎ็ฎก้ๆๅก | ้ซๆๅบๅๅ๏ผๅค็้ๅบฆๅฟซ |
| ๐ง ๅ ้จ API | ๅ ้จๆๅก่ฐ็จ | ็ธๆฏ HTTP REST๏ผๆง่ฝๆๅๆพ่ |
| ๐พ ๆฐๆฎ่ฎฟ้ฎๅฑ | ๆฐๆฎๆๅกไปฃ็ | ๆฏๆๅคๆๅฏน่ฑกไผ ่พ |
| ๅบๆฏ | ๆจ่ๆฟไปฃๆนๆก |
|---|---|
| ๆต่งๅจๅฎขๆท็ซฏ่ฐ็จ | ไฝฟ็จ SAEA.WebSocket ๆ REST API |
| ่ทจ่ฏญ่จ่ฐ็จ | ไฝฟ็จ gRPC ๆ HTTP API |
| ๅ ฌๅผๅค้จ API | ไฝฟ็จ SAEA.Http ๆ ASP.NET WebAPI |
| ็ฎๅ้ ็ฝฎๆๅก | ไฝฟ็จ้ ็ฝฎไธญๅฟ |
| ๆๆ | SAEA.RPC | HTTP/JSON RPC | ไผๅฟ |
|---|---|---|---|
| ๅบๅๅๆนๅผ | Protobuf ไบ่ฟๅถ | JSON ๆๆฌ | ไฝ็งฏๅฐ 5-10 ๅ |
| ไผ ่พๅ่ฎฎ | TCP ้ฟ่ฟๆฅ | HTTP ็ญ่ฟๆฅ | ๅๅฐๆกๆๅผ้ |
| ๅนถๅๆจกๅ | IOCP ๅผๆญฅ | ้ปๅก/ๅผๆญฅ | CPU ๅฉ็จ็้ซ |
| ๅปถ่ฟ | ~0.5ms | ~5-10ms | ไฝ 10 ๅ |
| ๅๅ้ | 100,000+ TPS | 10,000 TPS | ้ซ 10 ๅ |
| ่ฟๆฅๅค็จ | ๆฏๆ | ้ Keep-Alive | ๅ็ๆฏๆ |
| ๆ ผๅผ | ๆฐๆฎๅคงๅฐ | ๅบๅๅ้ๅบฆ | ๅๅบๅๅ้ๅบฆ |
|---|---|---|---|
| Protobuf | 100 bytes | โญโญโญโญโญ | โญโญโญโญโญ |
| JSON | 500 bytes | โญโญโญ | โญโญโญ |
| XML | 800 bytes | โญโญ | โญโญ |
๐ก ๆ็คบ: SAEA.RPC ไฝฟ็จ Protobuf ไบ่ฟๅถๅบๅๅ๏ผๆฐๆฎไฝ็งฏๅฐใ้ๅบฆๅฟซ๏ผๆฏ้ซๆง่ฝ RPC ็ๆไฝณ้ๆฉใ
A: | ็นๆง | SAEA.RPC | gRPC | |------|----------|------| | ๅญฆไน ๆฒ็บฟ | ็ฎๅ | ไธญ็ญ | | ่ทจ่ฏญ่จ | ไป .NET | ๅค่ฏญ่จๆฏๆ | | ไผ ่พๅ่ฎฎ | ่ชๅฎไน TCP | HTTP/2 | | ้็จๅบๆฏ | .NET ๅ ้จ้ไฟก | ่ทจ่ฏญ่จๅพฎๆๅก |
ๆจ่ๅจ็บฏ .NET ็ฏๅขไธไฝฟ็จ SAEA.RPC๏ผๆด็ฎๅ้ซๆใ
A: ้
ๅ ConsumerMultiplexer ๅฎ็ฐๅคๅฐๅ่ด่ฝฝๅ่กก๏ผ
var urls = new[]
{
"rpc://192.168.1.1:39654",
"rpc://192.168.1.2:39654"
};
var multiplexer = new ConsumerMultiplexer(urls);
var proxy = new RPCServiceProxy(multiplexer);
ไนๅฏ็ปๅ ConsulใNacos ็ญๆๅกๅ็ฐ็ปไปถๅจๆๆดๆฐๅฐๅๅ่กจใ
A: ้่ฟ OnErr ไบไปถๆ่ทๅผๅธธ๏ผ
var proxy = new RPCServiceProxy(url);
proxy.OnErr += (ex) =>
{
Console.WriteLine($"RPC ่ฐ็จๅผๅธธ: {ex.Message}");
};
ๆๅก็ซฏๅๆ ทๆฏๆ๏ผ
var provider = new ServiceProvider(port);
provider.OnErr += (ex) => Console.WriteLine(ex.Message);
A: ไฝฟ็จ AOP ่ฟๆปคๅจ ActionFilterAttribute๏ผ
public class AuthAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(string service, string method, object[] args)
{
// ๆ้้ช่ฏ้ป่พ
if (!ValidateToken())
throw new UnauthorizedAccessException();
}
}
[RPCService]
public class AdminService
{
[Auth]
public void DeleteUser(int id) { }
}
A: ๆฏๆ async/await๏ผ
[RPCService]
public class UserService
{
public async Task<User> GetUserAsync(int id)
{
return await _repository.FindAsync(id);
}
}
A: ไฝฟ็จ [NoRpc] ็นๆง๏ผ
[RPCService]
public class UserService
{
public string Login(string name) => "OK"; // ๆด้ฒ
[NoRpc]
public void InternalMethod() { } // ไธๆด้ฒ
}
A: ไฝฟ็จ Notice<T> ๆนๆณ๏ผ
// ๆๅก็ซฏๆจ้
provider.Notice("updates", new { Message = "็ณป็ปๆดๆฐ" });
// ๅฎขๆท็ซฏ่ฎข้
proxy.Subscribe("updates", (msg) =>
{
Console.WriteLine($"ๆถๅฐๆจ้: {msg}");
});
| ็ฑปๅ | ่ฏดๆ |
|---|---|
ServiceProvider |
RPC ๆๅกๆไพ่ ไธป็ฑป๏ผ่ด่ดฃๅฏๅจๅ็ฎก็ๆๅก |
ServiceConsumer |
RPC ๆถ่ดน่ ไธป็ฑป๏ผ่ด่ดฃ่ฟๆฅๅ่ฐ็จ |
RPCServiceProxy |
ๅจๆ็ๆ็ๅฎขๆท็ซฏไปฃ็ๅบ็ฑป |
RPCServiceAttribute |
ๆ ่ฎฐ็ฑปไธบ RPC ๆๅก |
NoRpcAttribute |
ๆ ่ฎฐๆนๆณไธๅฏนๅคๅผๆพ |
ActionFilterAttribute |
AOP ่ฟๆปคๅจๆฝ่ฑกๅบ็ฑป |
RPCMapping |
ๆๅกๆ ๅฐ็ผๅญ่กจ |
ConsumerMultiplexer |
ๅค่ทฏๅค็จ่ฟๆฅ็ฎก็ๅจ๏ผๆฏๆ่ด่ฝฝๅ่กก |
Notice<T> |
ๆๅก็ซฏๆจ้ๆถๆฏ็ฑปๅ |
using SAEA.RPC;
using SAEA.RPC.Model;
// ๅฎไน็จๆทๅฎไฝ
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public DateTime CreateTime { get; set; }
}
// ๅฎไนๆฅๅฟ่ฟๆปคๅจ
public class LogAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(string serviceName, string methodName, object[] args)
{
Console.WriteLine($"[{DateTime.Now}] ่ฐ็จ: {serviceName}.{methodName}");
}
public override void OnActionExecuted(string serviceName, string methodName, object result, Exception ex)
{
if (ex != null)
Console.WriteLine($"[้่ฏฏ] {ex.Message}");
else
Console.WriteLine($"[ๅฎๆ] ่ฟๅ: {result}");
}
}
// ๅฎไน RPC ๆๅก
[RPCService]
public class UserService
{
private List<User> _users = new List<User>();
[Log]
public string Register(string name)
{
var user = new User
{
Id = _users.Count + 1,
Name = name,
CreateTime = DateTime.Now
};
_users.Add(user);
return $"็จๆท {name} ๆณจๅๆๅ๏ผID: {user.Id}";
}
public User GetUser(int id)
{
return _users.FirstOrDefault(u => u.Id == id);
}
public List<User> GetAllUsers()
{
return _users;
}
[NoRpc]
public void InternalMethod()
{
// ๆญคๆนๆณไธไผๆด้ฒไธบ RPC ๆๅก
}
}
// ๅฏๅจๆๅก
var provider = new ServiceProvider(port: 39654);
provider.OnErr += (ex) => Console.WriteLine($"ๆๅก้่ฏฏ: {ex.Message}");
provider.Start();
Console.WriteLine("RPC ๆๅกๅทฒๅฏๅจ๏ผ็ซฏๅฃ: 39654");
Console.ReadKey();
using SAEA.RPC;
// ่ฟๆฅ RPC ๆๅก
var url = "rpc://127.0.0.1:39654";
var proxy = new RPCServiceProxy(url);
proxy.OnErr += (ex) => Console.WriteLine($"่ฐ็จ้่ฏฏ: {ex.Message}");
// ่ฐ็จ่ฟ็จๆนๆณ - ๆณจๅ็จๆท
var result = proxy.UserService.Register("ๅผ ไธ");
Console.WriteLine(result); // ่พๅบ: ็จๆท ๅผ ไธ ๆณจๅๆๅ๏ผID: 1
// ่ฐ็จ่ฟ็จๆนๆณ - ่ทๅ็จๆท
var user = proxy.UserService.GetUser(1);
Console.WriteLine($"็จๆทไฟกๆฏ: {user.Name}, ๆณจๅๆถ้ด: {user.CreateTime}");
// ่ฐ็จ่ฟ็จๆนๆณ - ่ทๅๆๆ็จๆท
var users = proxy.UserService.GetAllUsers();
Console.WriteLine($"ๆป็จๆทๆฐ: {users.Count}");
using SAEA.RPC;
// ้
็ฝฎๅคไธชๆๅกๅฐๅ
var urls = new[]
{
"rpc://192.168.1.1:39654",
"rpc://192.168.1.2:39654",
"rpc://192.168.1.3:39654"
};
// ๅๅปบๅค่ทฏๅค็จ่ฟๆฅๆฑ
var multiplexer = new ConsumerMultiplexer(urls);
var proxy = new RPCServiceProxy(multiplexer);
// ่ชๅจ่ด่ฝฝๅ่กก่ฐ็จ
for (int i = 0; i < 100; i++)
{
var result = proxy.UserService.Register($"User_{i}");
Console.WriteLine(result);
}
using SAEA.RPC;
// ๆๅก็ซฏ
var provider = new ServiceProvider(port: 39654);
provider.Start();
// ๅฎๆถๆจ้ๆถๆฏ
var timer = new Timer(_ =>
{
provider.Notice("news", new
{
Title = "็ณป็ปๅ
ฌๅ",
Content = $"ๅฝๅๆถ้ด: {DateTime.Now}"
});
}, null, 0, 5000);
// ๅฎขๆท็ซฏ่ฎข้
var proxy = new RPCServiceProxy("rpc://127.0.0.1:39654");
proxy.Subscribe("news", (msg) =>
{
Console.WriteLine($"ๆถๅฐๆจ้: {msg}");
});
RPC ๆถๆฏๆ ผๅผ๏ผ
| Type(1ๅญ่) | Total(4ๅญ่) | SeqNo(8ๅญ่) | SLen(4ๅญ่) | ServiceName | MLen(4ๅญ่) | MethodName | Data |
| ๅญๆฎต | ๅคงๅฐ | ่ฏดๆ |
|---|---|---|
| Type | 1 ๅญ่ | ๆถๆฏ็ฑปๅ |
| Total | 4 ๅญ่ | ๆป้ฟๅบฆ |
| SeqNo | 8 ๅญ่ | ๅบๅๅท๏ผ่ฏทๆฑๅๅบๅน้ ๏ผ |
| SLen | 4 ๅญ่ | ๆๅกๅ้ฟๅบฆ |
| ServiceName | N ๅญ่ | ๆๅกๅ็งฐ |
| MLen | 4 ๅญ่ | ๆนๆณๅ้ฟๅบฆ |
| MethodName | N ๅญ่ | ๆนๆณๅ็งฐ |
| Data | N ๅญ่ | Protobuf ๅบๅๅๅๆฐ |
ๆถๆฏ็ฑปๅ๏ผ
Ping/Pong - ๅฟ่ทณไฟๆดปRequest/Response - ่ฏทๆฑๅๅบNotice - ๆๅก็ซฏๆจ้Error - ้่ฏฏๆถๆฏClose - ๅ
ณ้ญ่ฟๆฅ| ๅ ๅ | ็ๆฌ | ่ฏดๆ |
|---|---|---|
| SAEA.Sockets | 7.26.2.2 | IOCP ้ไฟกๆกๆถ |
| SAEA.Common | 7.26.2.2 | ๅบๅๅๅทฅๅ ท |
Apache License 2.0
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 net5.0 was computed. net5.0-windows net5.0-windows was computed. net6.0 net6.0 was computed. 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 was computed. 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 was computed. 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 was computed. 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 was computed. 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. |
| .NET Core | netcoreapp2.0 netcoreapp2.0 was computed. netcoreapp2.1 netcoreapp2.1 was computed. netcoreapp2.2 netcoreapp2.2 was computed. netcoreapp3.0 netcoreapp3.0 was computed. netcoreapp3.1 netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 netstandard2.0 is compatible. netstandard2.1 netstandard2.1 was computed. |
| .NET Framework | net461 net461 was computed. net462 net462 was computed. net463 net463 was computed. net47 net47 was computed. net471 net471 was computed. net472 net472 was computed. net48 net48 was computed. net481 net481 was computed. |
| MonoAndroid | monoandroid monoandroid was computed. |
| MonoMac | monomac monomac was computed. |
| MonoTouch | monotouch monotouch was computed. |
| Tizen | tizen40 tizen40 was computed. tizen60 tizen60 was computed. |
| Xamarin.iOS | xamarinios xamarinios was computed. |
| Xamarin.Mac | xamarinmac xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos xamarinwatchos was computed. |
Showing the top 1 NuGet packages that depend on SAEA.RPC:
| Package | Downloads |
|---|---|
|
MicroServiceGateway.Client
MicroServiceGateway.Client |
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 26.4.23.1 | 133 | 4/23/2026 |
| 26.4.22.1 | 113 | 4/21/2026 |
| 7.26.4.21 | 102 | 4/20/2026 |
| 7.26.4.20 | 101 | 4/20/2026 |
| 7.26.2.2 | 145 | 2/2/2026 |
| 7.26.1.27 | 131 | 1/27/2026 |
| 7.26.1.25 | 122 | 1/25/2026 |
| 7.25.2.19 | 265 | 2/19/2025 |
| 7.25.2.18 | 230 | 2/18/2025 |
| 7.25.2.13 | 210 | 2/13/2025 |
| 7.25.2.11 | 225 | 2/11/2025 |
| 7.24.8.4 | 212 | 8/4/2024 |
| 7.23.9.24 | 262 | 9/24/2023 |
| 7.0.3.19 | 413 | 3/19/2023 |
| 7.0.0.3 | 694 | 2/27/2022 |
| 7.0.0.2 | 517 | 12/5/2021 |
| 7.0.0.1 | 514 | 11/28/2021 |
| 6.2.6.7 | 617 | 9/19/2021 |
| 6.2.6.6 | 550 | 8/15/2021 |
| 6.2.6.5 | 583 | 8/10/2021 |
This is a SAEA. Sockets-based RPC component, portable and efficient, far superior performance to similar products, easy to use, a few lines of code can be implemented.
่ฟๆฏไธไธชๅบไบSAEA.Sockets็rpc็ปไปถ๏ผ่ฝปไพฟ้ซๆ๏ผๆง่ฝ่ฟ่ถ
ๅ็ฑปไบงๅ๏ผ็ฎๅๆ็จ๏ผๅ ่กไปฃ็ ๅฐฑ่ฝๅฎ็ฐ
https://github.com/yswenli/SAEA