private static void TestDual() { Console.WriteLine("Testing double"); ServerTaskPoolOptions opts = new ServerTaskPoolOptions(); opts.MaxActiveWorkers = 8; ServerTaskPool <string> pool = new DualServerTaskPool <string>(new TestServer(), opts); Console.WriteLine("Starting"); pool.Start(); Console.WriteLine("Started"); System.Threading.Thread.Sleep(50000); //50 seconds //System.Threading.SpinWait w = new System.Threading.SpinWait(); //for (int i = 0; i < 1000; i++) //{ // w.SpinOnce(); //} Console.WriteLine("Stopping"); pool.Stop(); Console.WriteLine("Stopped"); Console.WriteLine("Double Loop Test"); Console.WriteLine("Total Listened " + listens); Console.WriteLine("Total Handled " + handles); Console.WriteLine("Testing double End"); }
private static void TestSingle() { Console.WriteLine("Testing single"); ServerTaskPoolOptions opts = new ServerTaskPoolOptions(); ServerTaskPool <string> pool = new SingleServerTaskPool <string>(new TestServer(), opts); Console.WriteLine("Starting"); pool.Start(); Console.WriteLine("Started"); System.Threading.SpinWait w = new System.Threading.SpinWait(); for (int i = 0; i < 10000; i++) { w.SpinOnce(); } Console.WriteLine("Stopping"); pool.Stop(); Console.WriteLine("Stopped"); Console.WriteLine("Single Loop Test"); Console.WriteLine("Total Listened " + listens); Console.WriteLine("Total Handled " + handles); Console.WriteLine("Testing single End"); }
public static HttpListenerServer Create(HttpListenerServerListener listener, ServerTaskPoolOptions options, bool useSinglePool) { MethodContract.NotNull(listener, nameof(listener)); MethodContract.NotNull(options, nameof(options)); if (useSinglePool) { return(new HttpListenerServer(new SingleServerTaskPool <HttpContext>(listener, options), listener)); } else { return(new HttpListenerServer(new DualServerTaskPool <HttpContext>(listener, options), listener)); } }
static HttpListenerServer ConfigureWebServer(JObject config, IEnumerable <MapHandler> handlerMappers) { if (handlerMappers != null) { JArray urls = config["listenerUrls"] as JArray; //list of urls to listen on if (urls != null) { List <string> urlList = new List <string>(); foreach (JToken cur in urls) { string tmp = cur.ToString(); if (!string.IsNullOrEmpty(tmp)) { urlList.Add(tmp); } } if (urlList.Count > 0) { //ok we can start this thing ServerTaskPoolOptions options = new ServerTaskPoolOptions(); ServerRouting router = new ServerRouting(); foreach (MapHandler cur in handlerMappers) { if (cur != null) { router.Map.Add(cur); } } if (router.Map.Count > 0) { HttpListenerServerListener listener = new HttpListenerServerListener(urlList, new Shim(router)); HttpListenerServer server = HttpListenerServer.Create(listener, options, false); return(server); } } } } return(null); }
private static HttpListenerServer InitServer(IEnumerable <string> listenUrls, IEnumerable <IHandlerMapper> handlerMappers) { ServerTaskPoolOptions options = new ServerTaskPoolOptions(); ServerRouting router = new ServerRouting(); foreach (MapHandler cur in handlerMappers) { if (cur != null) { router.Map.Add(cur); } } if (router.Map.Count > 0) { HttpListenerServerListener listener = new HttpListenerServerListener(listenUrls, router); HttpListenerServer server = HttpListenerServer.Create(listener, options, false); return(server); } return(null); }