Beispiel #1
0
 public ConnectionFactory(string hubName, IServiceEndpointProvider provider, IServerNameProvider nameProvider, ILoggerFactory loggerFactory)
 {
     _provider      = provider ?? throw new ArgumentNullException(nameof(provider));
     _loggerFactory = loggerFactory == null ? (ILoggerFactory)NullLoggerFactory.Instance : new GracefulLoggerFactory(loggerFactory);
     _userId        = nameProvider?.GetName();
     _hubName       = hubName;
 }
 public ConnectionFactory(string hubName, IServiceEndpointProvider provider, ILoggerFactory loggerFactory)
 {
     _provider      = provider ?? throw new ArgumentNullException(nameof(provider));
     _loggerFactory = loggerFactory;
     _userId        = GenerateServerName();
     _hubName       = hubName;
 }
Beispiel #3
0
 public ServiceManager(RestClientFactory restClientFactory, ServiceHubContextFactory serviceHubContextFactory, IServiceEndpointManager endpointManager, IServiceProvider serviceProvider)
 {
     _restClientFactory        = restClientFactory;
     _serviceHubContextFactory = serviceHubContextFactory;
     _serviceProvider          = serviceProvider;
     _endpoint         = endpointManager.Endpoints.Single().Key;
     _endpointProvider = endpointManager.GetEndpointProvider(_endpoint);
 }
Beispiel #4
0
 public ServiceManager(IReadOnlyCollection <ServiceDescriptor> services, IServiceProvider serviceProvider, RestClientFactory restClientFactory, IServiceEndpointManager endpointManager)
 {
     _services          = services;
     _serviceProvider   = serviceProvider;
     _restClientFactory = restClientFactory;
     _endpoint          = endpointManager.Endpoints.Keys.First();
     _endpointProvider  = endpointManager.GetEndpointProvider(_endpoint);
 }
 public TestHubServiceEndpoint(
     string name = null,
     IServiceEndpointProvider provider = null,
     ServiceEndpoint endpoint          = null
     ) : base(
         name ?? "foo",
         provider ?? new TestServiceEndpointProvider(),
         endpoint ?? new TestServiceEndpoint()
         )
 {
 }
 public HubServiceEndpoint(
     string hub,
     IServiceEndpointProvider provider,
     ServiceEndpoint endpoint,
     bool needScaleTcs = false
     ) : base(endpoint)
 {
     Hub       = hub;
     Provider  = provider;
     _endpoint = endpoint;
     _scaleTcs = needScaleTcs ? new TaskCompletionSource <bool>(TaskCreationOptions.RunContinuationsAsynchronously) : null;
 }
 public HubServiceEndpoint(
     string hub,
     IServiceEndpointProvider provider,
     ServiceEndpoint endpoint,
     bool needScaleTcs = false
     ) : base(endpoint)
 {
     Hub          = hub;
     Provider     = provider;
     _endpoint    = endpoint;
     _scaleTcs    = needScaleTcs ? new TaskCompletionSource <bool>(TaskCreationOptions.RunContinuationsAsynchronously) : null;
     _uniqueIndex = Interlocked.Increment(ref s_currentIndex);
 }
Beispiel #8
0
        public ServiceManager(IReadOnlyCollection <ServiceDescriptor> services, IServiceProvider serviceProvider, RestClientFactory restClientFactory, IServiceEndpointManager endpointManager, IOptions <ServiceManagerOptions> options)
        {
            _services          = services;
            _serviceProvider   = serviceProvider;
            _restClientFactory = restClientFactory;
            var connectionString = options.Value.ConnectionString;

            if (!string.IsNullOrWhiteSpace(connectionString))
            {
                _endpoint         = new ServiceEndpoint(connectionString);
                _endpointProvider = endpointManager.GetEndpointProvider(_endpoint);
            }
        }
Beispiel #9
0
        public ConnectionFactory(IReadOnlyList <string> hubNames, HubConfiguration hubConfig)
        {
            _config   = hubConfig;
            _hubNames = hubNames;
            _name     = $"{nameof(ConnectionFactory)}[{string.Join(",", hubNames)}]";
            _userId   = GenerateServerName();

            _loggerFactory            = hubConfig.Resolver.Resolve <ILoggerFactory>() ?? NullLoggerFactory.Instance;
            _protocol                 = hubConfig.Resolver.Resolve <IServiceProtocol>();
            _serviceConnectionManager = hubConfig.Resolver.Resolve <IServiceConnectionManager>();
            _clientConnectionManager  = hubConfig.Resolver.Resolve <IClientConnectionManager>();
            _endpoint                 = hubConfig.Resolver.Resolve <IServiceEndpointProvider>();
            _options = hubConfig.Resolver.Resolve <IOptions <ServiceOptions> >().Value;

            _logger = _loggerFactory.CreateLogger <ConnectionFactory>();
        }
 private async Task GenerateClientAccessTokenAsync(
     IServiceEndpointProvider provider,
     HostContext context,
     string url,
     IEnumerable <Claim> claims)
 {
     try
     {
         var accessToken = await provider.GenerateClientAccessTokenAsync(null, claims);
         await SendJsonResponse(context, GetRedirectNegotiateResponse(url, accessToken));
     }
     catch (AzureSignalRAccessTokenTooLongException ex)
     {
         Log.NegotiateFailed(_logger, ex.Message);
         context.Response.StatusCode = 413;
         await context.Response.End(ex.Message);
     }
 }
        private Uri GetServiceUrl(IServiceEndpointProvider provider, string hubName, string connectionId, string target)
        {
            var baseUri = new UriBuilder(provider.GetServerEndpoint(hubName));
            var query   = "cid=" + connectionId;

            if (target != null)
            {
                query = $"{query}&target={WebUtility.UrlEncode(target)}";
            }
            if (baseUri.Query != null && baseUri.Query.Length > 1)
            {
                baseUri.Query = baseUri.Query.Substring(1) + "&" + query;
            }
            else
            {
                baseUri.Query = query;
            }
            return(baseUri.Uri);
        }
        public ServiceHubDispatcher(IServiceProtocol serviceProtocol,
                                    IServiceConnectionManager <THub> serviceConnectionManager,
                                    IClientConnectionManager clientConnectionManager,
                                    IServiceEndpointProvider serviceEndpointProvider,
                                    IOptions <ServiceOptions> options,
                                    ILoggerFactory loggerFactory,
                                    IClientConnectionFactory clientConnectionFactory)
        {
            _serviceProtocol          = serviceProtocol;
            _serviceConnectionManager = serviceConnectionManager;
            _clientConnectionManager  = clientConnectionManager;
            _serviceEndpointProvider  = serviceEndpointProvider;
            _options = options != null ? options.Value : throw new ArgumentNullException(nameof(options));

            _loggerFactory           = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
            _logger                  = loggerFactory.CreateLogger <ServiceHubDispatcher <THub> >();
            _clientConnectionFactory = clientConnectionFactory;
            _userId                  = GenerateServerName();
        }
Beispiel #13
0
 public override void Initialize(IDependencyResolver resolver)
 {
     _endpoint = resolver.Resolve <IServiceEndpointProvider>();
     base.Initialize(resolver);
 }
Beispiel #14
0
 public HubServiceEndpoint(string hub, IServiceEndpointProvider provider, ServiceEndpoint endpoint) : base(endpoint)
 {
     Hub      = hub;
     Provider = provider;
 }
 public ICanAddEndpointOrLoggingOrCorrelationOrCreate <TMessage, TCommand, TEvent, TRequest, TResponse> WithServerEndpoints(IServiceEndpointProvider <TMessage, TCommand, TEvent, TRequest, TResponse> serviceEndpointProvider)
 {
     _endpoints.Add(serviceEndpointProvider.CreateEndpoint());
     return(this);
 }
 public NegotiateHandler(IServiceEndpointProvider endpointProvider, IUserIdProvider userIdProvider, IOptions <ServiceOptions> options)
 {
     _endpointProvider = endpointProvider ?? throw new ArgumentNullException(nameof(endpointProvider));
     _userIdProvider   = userIdProvider ?? throw new ArgumentNullException(nameof(userIdProvider));
     _claimsProvider   = options?.Value?.ClaimsProvider;
 }
Beispiel #17
0
 public ICanAddEndpointOrCreate WithEndpoints(IServiceEndpointProvider serviceEndpointProvider)
 {
     _endpointClients.Add(serviceEndpointProvider.CreateEndpointClient());
     _endpoints.Add(serviceEndpointProvider.CreateEndpoint());
     return(this);
 }