예제 #1
0
        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);
        }
예제 #2
0
        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();
        }