public Context GetContext(ClientHandler handler) { handler.Invoke(Client); var rawCtx = Listener.GetContext(); var request = new Bemol.Core.Server.HttpListener.HttpListenerRequest(rawCtx); var response = new Bemol.Core.Server.HttpListener.HttpListenerResponse(rawCtx); var ctx = new Context(request, response, new Core.BemolConfig()); return(ctx); }
internal virtual void Start() { new Thread(() => { var listener = new HttpListener(); listener.Prefixes.Add($"http://{Host}:{Port}{Config.ContextPath}"); listener.Start(); // Console.Clear(); Console.WriteLine($"Listening on http://{Host}:{Port}{Config.ContextPath}"); while (Started) { var rawCtx = listener.GetContext(); new Task(() => { var request = new Bemol.Core.Server.HttpListener.HttpListenerRequest(rawCtx); var response = new Bemol.Core.Server.HttpListener.HttpListenerResponse(rawCtx); var ctx = new Context(request, response); HandleRequest(ctx); }).Start(); } }).Start(); }