public Task SendAsync(TMessage message) { //根据配置 查找对应位置 来获得Endpoint var point = _router.GetRouterPoint(message); if (point == null) { Logger.Error("Get routing error"); throw new Rpc.Exceptions.RpcException("Get routing information error, please check the configuration"); } if (point.RoutePointType == RoutePointType.Local) //本地调用流程 { Logger.Debug("Call local service"); var actor = this._actorLocator.LocateServiceActor(message); var context = new LocalMockContext <TMessage>(this._handler); //MOCK Context return(actor.ReceiveAsync(context, message)); } else { Logger.Debug("Call remote service{0}", point.RemoteAddress); var transport = this._transportFactory.CreateTransport(point.RemoteAddress); return(transport.SendAsync(message)); } throw new NotImplementedException("There is no default address,call SendAsync(EndPoint serverAddress,AmpMessage message) to send messages"); }
public Task SendAsync(AmpMessage message) { //根据配置 查找对应位置 来获得Endpoint var point = _router.GetRouterPoint(message); if (point == null) { Logger.Error("Get routing error"); throw new RpcException("Get routing information error, please check the configuration"); } if (point.RoutePointType == RoutePointType.Local) //本地调用流程 { throw new RpcException("service not found"); } else { Logger.Debug("Call remote service{0}", point.RemoteAddress); var transport = this._transportFactory.CreateTransport(point.RemoteAddress); return(transport.SendAsync(message)); } throw new NotImplementedException("There is no default address,call SendAsync(EndPoint serverAddress,AmpMessage message) to send messages"); }