private async Task doExcuteService(ServiceRequest request, Delegate action, RpcServiceGreeter_Client.RpcServiceGreeterClient client) { var options = new CallOptions(); request.TraceData.LogId = XContext.Current.LogId; var param = new RpcRequest(); param.Data = string.Empty + request.ToJson(); var responses = client.RpcStream(param, options); while (await responses.ResponseStream.MoveNext()) { try { var response = responses.ResponseStream.Current; if (response == null) { continue; } if (string.IsNullOrWhiteSpace(response.Data)) { continue; } var result = response.Data.ToObject <ServiceResponse>(); runMethod(action, request, result); } catch { } } }
/// <summary> /// 远程服务调用 /// </summary> /// <param name="request"></param> /// <param name="client"></param> /// <returns></returns> private ServiceResponse rpcExcuteService(ServiceRequest request, RpcServiceGreeter_Client.RpcServiceGreeterClient client) { var options = new CallOptions(); request.TraceData.LogId = XContext.Current.LogId; var param = new RpcRequest(); param.Data = string.Empty + request.ToJson(); var response = client.RpcService(param, options); var result = response.Data.ToObject <ServiceResponse>(); return(result); }
private async Task doExcuteService(ClientRegistData service, Channel channel, ServiceRequest request, Delegate action) { var handler = new ServiceHandlerHelper(service); var rpcChannel = channel; if (rpcChannel == null) { rpcChannel = service.ServerChannel; } var client = new RpcServiceGreeter_Client.RpcServiceGreeterClient(rpcChannel); request = new RequestHelper().GetServiceRequest(service, request); request = handler.ClientRequest(request); await doExcuteService(request, action, client); }
/// <summary> /// 远程服务调用 /// </summary> /// <param name="channel"></param> /// <param name="request"></param> /// <returns></returns> private ServiceResponse doExcuteService(ClientRegistData service, Channel channel, ServiceRequest request) { var handler = new ServiceHandlerHelper(service); var rpcChannel = channel; if (rpcChannel == null) { rpcChannel = service.ServerChannel; } var client = new RpcServiceGreeter_Client.RpcServiceGreeterClient(rpcChannel); request = new RequestHelper().GetServiceRequest(service, request); request = handler.ClientRequest(request); var result = excuteService(service, request, client); result = handler.ClientRespons(request, result); return(result); }
private ServiceResponse excuteService(ClientRegistData service, ServiceRequest request, RpcServiceGreeter_Client.RpcServiceGreeterClient client) { return(rpcExcuteService(request, client)); }