DotnettyRPC es un marco RPC multiplataforma basado en Dotnetty, que admite .NET45 y .NET Standard 2.0
Al encontrar servicios de llamadas remotas en el desarrollo tradicional de .NET, WCF es el enfoque principal. Aunque WCF tiene funciones potentes, su configuración es compleja y no es fácil de usar. Y en el futuro, definitivamente será el mundo de .NET Core. WCF no admite .NET Core por el momento (solo los clientes, no se puede establecer ningún servidor). Otros marcos de RPC .NET en el mercado, como GRPC, el aumento del marco de microservicio, son potentes, tienen un buen rendimiento y son relativamente maduros, pero no son lo suficientemente simples como para usar. Basado en la comparación anterior (sin elogios y menosprecios), acabo de tomar una rueda dotnettyrpc. Su posicionamiento es una plataforma multiplataforma (.NET45 y .NET estándar), marco RPC simple pero práctico.
Abra el administrador de paquetes Nuget, busque dotnettyrpc para encontrarlo y usarlo
O ingrese el comando nuget: instalación-paquete de paquete dotnettyrpc
public interface IHello
{
string SayHello ( string msg ) ;
}
public class Hello : IHello
{
public string SayHello ( string msg )
{
return msg ;
}
} using Coldairarrow . DotNettyRPC ;
using Common ;
using System ;
namespace Server
{
class Program
{
static void Main ( string [ ] args )
{
RPCServer rPCServer = new RPCServer ( 9999 ) ;
rPCServer . RegisterService < IHello , Hello > ( ) ;
rPCServer . Start ( ) ;
Console . ReadLine ( ) ;
}
}
} using Coldairarrow . DotNettyRPC ;
using Common ;
using System ;
namespace Client
{
class Program
{
static void Main ( string [ ] args )
{
IHello client = RPCClientFactory . GetClient < IHello > ( "127.0.0.1" , 9999 ) ;
var msg = client . SayHello ( "Hello" ) ;
Console . WriteLine ( msg ) ;
Console . ReadLine ( ) ;
}
}
}Ejecute el servidor primero y luego ejecute el cliente, y puede generar hola en el cliente
La solicitud de prueba RPC promedio en esta máquina es de aproximadamente 0.4 ms, lo que no tiene un alto rendimiento, pero es suficiente para hacer frente a la mayoría de los escenarios comerciales, con un enfoque en la simplicidad y la practicidad. Hay muchos lugares que se pueden optimizar, y espero que todos puedan apoyarlo.
Dirección de Github: https://github.com/coldararrow/dotnettyrpc
Grupo QQ: 373144077