/// <summary> /// Creates and starts a new <see cref="HttpServer"/> based on the specified /// <paramref name="configuration"/>. /// </summary> /// <param name="configuration">The configuration for this HTTP server instance.</param> /// <param name="cancellationToken">(Optional) A cancelation token that may be /// used by the caller to interrupt the HTTP server initialization process</param> /// <returns>Returns the fully initialized and listening HTTP server</returns> /// <seealso cref="HttpServerConfigurationSection"/> public static async Task<HttpServer> Start(IHttpServerConfiguration configuration, CancellationToken cancellationToken = default(CancellationToken)) { var server = new HttpServer(configuration); await server.Init(cancellationToken); return server; }
public HttpServer(IHttpServerConfiguration configuration, IHttpAuthChallenger authChallenger) { Configuration = configuration; InitializeListener(); ClientFactory = new ClientFactory(configuration); AuthenticationChallenger = authChallenger; }
public HttpBasicAuthChallenger(IHttpServerConfiguration configuration, IAuthenticationValidator authenticationValidator) { Configuration = configuration; var challengeBody = new BasicAuthRequiredResponse(configuration.BaseUrl).ToString(); challenge = Encoding.UTF8.GetBytes(challengeBody); Validator = authenticationValidator; }
private static async Task <HttpServer> StartAsync( IHttpServerConfiguration configuration, CancellationToken cancellationToken = default(CancellationToken)) { var server = new HttpServer(configuration); await server.Init(cancellationToken); return(server); }
private HttpServer(IHttpServerConfiguration configuration) { _baseUri = configuration.BaseUri; _metricsCollector = new HttpMetricsCollector(); _diagnosticService = configuration.DiagnosticService; _diagnosticService.AddSink(_metricsCollector); _subscriptionTrackingService = configuration.SubscriptionTrackingService; _messageQueueingService = configuration.MessageQueueingService; _messageJournal = configuration.MessageJournal; var transportServiceOptions = new HttpTransportServiceOptions(_baseUri, _messageQueueingService, _subscriptionTrackingService) { DiagnosticService = configuration.DiagnosticService, Endpoints = configuration.Endpoints, MessageJournal = configuration.MessageJournal, BypassTransportLocalDestination = configuration.BypassTransportLocalDestination }; TransportService = new HttpTransportService(transportServiceOptions); _bus = new Bus(configuration, _baseUri, TransportService, _messageQueueingService); var authorizationService = configuration.AuthorizationService; _resourceRouter = new ResourceTypeDictionaryRouter(configuration.BaseUri) { { "message", new MessageController(TransportService.ReceiveMessage, authorizationService) }, { "topic", new TopicController(_subscriptionTrackingService, configuration.Topics, authorizationService) }, { "journal", new JournalController(configuration.MessageJournal, configuration.AuthorizationService) }, { "metrics", new MetricsController(_metricsCollector) } }; _httpListener = InitHttpListener(_baseUri, configuration.AuthenticationSchemes); var acceptBlockOptions = new ExecutionDataflowBlockOptions { CancellationToken = _cancellationTokenSource.Token }; if (configuration.ConcurrencyLimit > 0) { acceptBlockOptions.MaxDegreeOfParallelism = configuration.ConcurrencyLimit; } _acceptBlock = new ActionBlock <HttpListenerContext>(async ctx => await Accept(ctx), acceptBlockOptions); }
public HttpServer(IHttpServerConfiguration configuration) { _configuration = configuration; _socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); }
/// <summary> /// Creates and starts a new <see cref="HttpServer"/> /// </summary> /// <param name="configuration">The HTTP sever configuration</param> /// <param name="cancellationToken">(Optional) A cancellation token that can be used by the /// caller to cancel HTTP server initialization</param> /// <returns>Returns the fully initialized and listening HTTP server</returns> public static HttpServer Start(IHttpServerConfiguration configuration, CancellationToken cancellationToken = default(CancellationToken)) { return(StartAsync(configuration, cancellationToken) .GetResultFromCompletionSource(cancellationToken)); }
public HttpServerConfigurator(IHttpServerConfiguration configuration) { _configuration = configuration; }
private HttpServer(IHttpServerConfiguration configuration) { _baseUri = configuration.BaseUri; _subscriptionTrackingService = configuration.SubscriptionTrackingService; _messageQueueingService = configuration.MessageQueueingService; _messageJournalingService = configuration.MessageJournalingService; var endpoints = configuration.Endpoints; _transportService = new HttpTransportService(_baseUri, endpoints, _messageQueueingService, _messageJournalingService, _subscriptionTrackingService); _bus = new Bus(configuration, _baseUri, _transportService, _messageQueueingService); _resourceRouter = new ResourceTypeDictionaryRouter { {"message", new MessageController(_bus.HandleMessage)}, {"topic", new TopicController(_subscriptionTrackingService, configuration.Topics)} }; _httpListener = InitHttpListener(_baseUri, configuration.AuthenticationSchemes); }
public ClientFactory(IHttpServerConfiguration configuration) { Configuration = configuration; }