예제 #1
0
        public void StartServer()
        {
            var httpEngine = new HttpEngine(_dataManager, _logger);

            var port = GetPortConfig();

            _server.Prefixes.Add($"http://localhost:{port.PortNumber}/"); //URI prefixes
            _server.Start();
            _logger.Information("Start listening on " + port.PortNumber);

            while (true) //TODO: Instead of true. Stop server when requested.
            {
                var context = _server.GetContext();
                _logger.Debug($"{context.Request.HttpMethod} {context.Request.Url}");
                var responseMessage = httpEngine.Process(new HttpListenerRequestWrapper(context.Request));
                httpEngine.Send(responseMessage, context.Response);
            }
            _server.Stop();  // never reached...
        }