private static BenchmarkMessage PrepareBenchmarkMessage() { var msg = new BenchmarkMessage(); msg.Field1 = "REQUEST"; msg.Field2 = 1; return(msg); }
//同步方法 public BenchmarkMessage Echo(BenchmarkMessage request) { AmpMessage message = AmpMessage.CreateRequestMessage(50000, 1); message.Data = request.ToByteArray(); var response = base.CallInvoker.BlockingCall(message); if (response != null && response.Data != null) { return(BenchmarkMessage.Parser.ParseFrom(response.Data)); } throw new RpcException("请求出错,请检查!"); }
public async Task <BenchmarkMessage> EchoAsync(BenchmarkMessage request, int timeOut = 3000) { AmpMessage message = AmpMessage.CreateRequestMessage(50000, 1); message.Data = request.ToByteArray(); var response = await base.CallInvoker.AsyncCall(message, timeOut); if (response != null && response.Data != null) { return(BenchmarkMessage.Parser.ParseFrom(response.Data)); } throw new RpcException("请求出错,请检查!"); }
//同步方法 public BenchmarkMessage Echo(BenchmarkMessage request) { AmpMessage message = AmpMessage.CreateRequestMessage(50000, 1); message.Data = request.ToByteArray(); var response = base.CallInvoker.BlockingCall(message); if (response == null) { throw new RpcException("error,response is null !"); } if (response.Data == null) { return(new BenchmarkMessage()); } return(BenchmarkMessage.Parser.ParseFrom(response.Data)); }
//调用委托 private async Task <AmpMessage> ProcessEchoAsync(AmpMessage req) { BenchmarkMessage request = null; if (req.Data == null) { request = new BenchmarkMessage(); } else { request = BenchmarkMessage.Parser.ParseFrom(req.Data); } var data = await EchoAsync(request); var response = AmpMessage.CreateResponseMessage(req.ServiceId, req.MessageId); response.Sequence = req.Sequence; response.Data = data.ToByteArray(); return(response); }
//抽象方法 public abstract Task <BenchmarkMessage> EchoAsync(BenchmarkMessage request);
public override Task <BenchmarkMessage> EchoAsync(BenchmarkMessage request) { request.Field1 = "OK"; request.Field2 = 100; return(Task.FromResult(request)); }