-
Notifications
You must be signed in to change notification settings - Fork 22
Henry edited this page Oct 12, 2019
·
1 revision
组件是基于接口的方式来描述通讯,在使用上极其方便;以下介绍一下如何使组件构建一个基于接口访问的Hello World
服务。
(注意:WinForm或WPF中使用请引用BeetleX.XRPC.Clients
)
public interface IHelloWorld
{
Task<string> Hello(string name);
}
接口的定义需要有一个规则,就是方法的返回值必须是Task
。
[Service(typeof(IHelloWorld))]
public class HelloWorldService : IHelloWorld
{
public Task<string> Hello(string name)
{
return $"Hello {name} {DateTime.Now}".ToTask();
}
}
class Program
{
private static XRPCServer mXRPCServer;
static void Main(string[] args)
{
mXRPCServer = new XRPCServer();
mXRPCServer.RPCOptions.LogToConsole = true;
mXRPCServer.ServerOptions.LogLevel = BeetleX.EventArgs.LogType.Debug;
mXRPCServer.Register(typeof(Program).Assembly);
mXRPCServer.Open();
Console.Read();
}
}
以上服务是在所有IP
的9090
端口提供RPC
服务,如果需要修改网络配置信息可以设置ServerOptions
,具体属性查看BeetleX
配置。启动日志如下:
client = new XRPCClient("127.0.0.1", 9090);
client.TimeOut = 10000;
client.Connect();
client.NetError = (c, e) =>
{
Console.WriteLine(e.Error.Message);
};
var service = client.Create<IHelloWorld>();
while(true)
{
Console.Write("enter name:");
string name = Console.ReadLine();
var result = await service.Hello(name);
Console.WriteLine(result);
}