Ejemplo n.º 1
0
        public T Invoke <T>(string action, Dictionary <string, object> parameters, object state)
        {
            using (var env = new ServiceExecutionEnv(_loggerFactory, _selector, _requestOptions))
            {
                return((T)env.Execute(typeof(T), _desc, service => {
                    var url = _desc.GetUrl(service, action);

                    var ctx = new CobRequestContext {
                        ServiceName = _desc.ServiceName, TargetAddress = service.Address, Parameters = parameters, ReturnType = typeof(T), Url = url
                    };                                                                                                                                                               //, Timeout = _desc.Timeout

                    return _requestResolver.Get(_desc.Transport).DoRequest(ctx, state);
                }));
            }
        }
Ejemplo n.º 2
0
 public override void OnBeforeRequest(CobRequestContext context)
 {
     //base.OnBeforeRequest(context);
     context.Extensions["author"] = Name;
 }
Ejemplo n.º 3
0
 public override void OnBeforeRequest(CobRequestContext context)
 {
     //base.OnBeforeRequest(context);
     context.Parameters["t"]       = DateTimeOffset.Now.ToUnixTimeMilliseconds().ToString();
     context.Extensions["x-token"] = "token-abc";
 }
Ejemplo n.º 4
0
 //每个服务分配一个池
 public ClientWebSocketPool GetOrCreate(CobRequestContext context)
 {
     return(_items.GetOrAdd(context.TargetAddress ?? new Uri(context.Url).AbsolutePath, k => new ClientWebSocketPool(_loggerFactory, context.TargetAddress ?? context.Url)));//按serviceName划池
 }
Ejemplo n.º 5
0
 public virtual void OnBeforeRequest(CobRequestContext context)
 {
 }