static void Main(string[] args) { ThreadPool.SetMinThreads(65535, 65535); var server = new JsonRpcServer(); var client = new JsonRpcClient(); if (args.Contains("-debug")) { Logger.DebugMode = true; Logger.UseDefaultWriter(); } if (args.Contains("-benchmark")) { var engine = new JsonRpcInProcessEngine(); server.UseEngine(engine); client.UseEngine(engine); server.Start(); var statisticsList = new List <int>(); for (var i = 0; i < 20; i++) { statisticsList.Add(Benchmark(client, TestData)); Console.WriteLine(); } Console.WriteLine(); Console.WriteLine($"Best: {statisticsList.Max()} rpc/sec, \t Average: {(int)statisticsList.Average()} rpc/sec, \t Worst: {statisticsList.Min()} rpc/sec"); } else { IJsonRpcServerEngine serverEngine; if (args.Contains("-websocket")) { serverEngine = new JsonRpcWebSocketServerEngine("http://*:8090/"); server.UseEngine(serverEngine); } else if (args.Contains("-websocket-kestrel")) { serverEngine = new JsonRpcKestrelWebSocketServerEngine(IPAddress.Any, 8090); server.UseEngine(serverEngine); } else if (args.Contains("-http-kestrel")) { serverEngine = new JsonRpcKestrelHttpServerEngine(IPAddress.Any, 8090); server.UseEngine(serverEngine); } else { serverEngine = new JsonRpcHttpServerEngine("http://*:8090/"); server.UseEngine(serverEngine); } server.Start(); Console.WriteLine($"JsonRpc Server Started with engine: {serverEngine.Name}."); } Console.ReadLine(); }