static void Main(string[] args) { try { //MathServiceImpl handler = new MathServiceImpl(); //MathService.Processor processor = new MathService.Processor(handler); //TServerTransport serverTransport = new TServerSocket(8088); //TServer server = new TSimpleServer(processor, serverTransport); //Console.WriteLine("Starting the server..."); //server.Serve(); TServerSocket serverTransport = new TServerSocket(8088); // 设置服务端口为8088 //Factory factory = new Factory(); // 设置协议工厂为 TBinaryProtocol TBinaryProtocol.Factory factory = new TBinaryProtocol.Factory(); TTransportFactory transportFactory = new TTransportFactory(); TProcessor processor = new MathService.Processor(new MathServiceImpl()); TServer server = new TThreadPoolServer(processor, serverTransport, transportFactory, factory); Console.WriteLine($"Starting the server"); server.Serve(); } catch (Exception ex) { Console.WriteLine(ex.StackTrace); } Console.WriteLine("Done."); }
public void Start() { try { _currentSessions = new List<Session>(); // Initialize and start server which accepts tracker connections var socketListener = new SocketListener(NetworkSettings.GetFromAppConfig()); socketListener.ActiveChannels.CollectionChanged += ActiveSessions_CollectionChanged; // Initialize and start Node interface (used by other services to access devices realtime) // Processor var implementation = new NodeServiceImplementation(_currentSessions); var testProcessor = new NodeService.Processor(implementation); // Transport // todo: define port in AppConfig! var tServerSocket = new TServerSocket(4445, 0, true); // ThreadPool Server TServer serverEngine = new TThreadPoolServer(testProcessor, tServerSocket); // Run it serverEngine.Serve(); Console.WriteLine("Server is running...press any key to exit..."); } catch (Exception ex) { Console.WriteLine("Error: " + ex.Message); } }
static void Main() { var processor = new AccountService.Processor(new AccountServiceHandler()); var transport = new TServerSocket(18801); var server = new TThreadPoolServer(processor, transport); server.Serve(); }
private void Dispose(bool disposing) { if (disposing && server != null) { server.Stop(); server = null; } }
static void Main(string[] args) { TServerSocket serverTransport = new TServerSocket(7911); UserStorage.Processor processor = new UserStorage.Processor(new UserStorageImpl()); // var protFactory = new TBinaryProtocol.Factory(true, true); var server = new TThreadPoolServer(processor, serverTransport); Console.WriteLine("Starting server on port 7911 ..."); server.Serve(); }
public EchoServer() { _server = new TThreadPoolServer(this, new TServerSocket(1337), new TFramedTransport.Factory(), new TFramedTransport.Factory(), new TBinaryProtocol.Factory(), new TBinaryProtocol.Factory(), 16, 128, Log); }
public EchoServer() { _server = new TThreadPoolServer(this, new TServerSocket(1337), new TFramedTransport.Factory(), new TFramedTransport.Factory(), new TBinaryProtocol.Factory(), new TBinaryProtocol.Factory(), 16, 128, Log); }
public void Run() { try { var processor = new MessageService.Processor(receiver); var serverTransport = new TServerSocket(port); server = new TThreadPoolServer(processor, serverTransport, new TTransportFactory(), new TCompactProtocol.Factory()); Task.Factory.StartNew(() => server.Serve()); } catch (Exception ex) { Console.WriteLine(ex); } }
public static bool Execute(string[] args) { try { bool useBufferedSockets = false, useFramed = false, useEncryption = false, compact = false, json = false; ServerType serverType = ServerType.TSimpleServer; ProcessorFactoryType processorFactoryType = ProcessorFactoryType.TSingletonProcessorFactory; int port = 9090; string pipe = null; for (int i = 0; i < args.Length; i++) { if (args[i] == "-pipe") // -pipe name { pipe = args[++i]; } else if (args[i].Contains("--port=")) { port = int.Parse(args[i].Substring(args[i].IndexOf("=") + 1)); } else if (args[i] == "-b" || args[i] == "--buffered" || args[i] == "--transport=buffered") { useBufferedSockets = true; } else if (args[i] == "-f" || args[i] == "--framed" || args[i] == "--transport=framed") { useFramed = true; } else if (args[i] == "--compact" || args[i] == "--protocol=compact") { compact = true; } else if (args[i] == "--json" || args[i] == "--protocol=json") { json = true; } else if (args[i] == "--threaded" || args[i] == "--server-type=threaded") { serverType = ServerType.TThreadedServer; } else if (args[i] == "--threadpool" || args[i] == "--server-type=threadpool") { serverType = ServerType.TThreadPoolServer; } else if (args[i] == "--prototype" || args[i] == "--processor=prototype") { processorFactoryType = ProcessorFactoryType.TPrototypeProcessorFactory; } else if (args[i] == "--ssl") { useEncryption = true; } } // Transport TServerTransport trans; if (pipe != null) { trans = new TNamedPipeServerTransport(pipe); } else { if (useEncryption) { string certPath = "../../../../test/keys/server.p12"; trans = new TTLSServerSocket(port, 0, useBufferedSockets, new X509Certificate2(certPath, "thrift"), null, null, SslProtocols.Tls); } else { trans = new TServerSocket(port, 0, useBufferedSockets); } } TProtocolFactory proto; if (compact) proto = new TCompactProtocol.Factory(); else if (json) proto = new TJSONProtocol.Factory(); else proto = new TBinaryProtocol.Factory(); TProcessorFactory processorFactory; if (processorFactoryType == ProcessorFactoryType.TPrototypeProcessorFactory) { processorFactory = new TPrototypeProcessorFactory<ThriftTest.Processor, TestHandler>(); } else { // Processor TestHandler testHandler = new TestHandler(); ThriftTest.Processor testProcessor = new ThriftTest.Processor(testHandler); processorFactory = new TSingletonProcessorFactory(testProcessor); } TTransportFactory transFactory; if (useFramed) transFactory = new TFramedTransport.Factory(); else transFactory = new TTransportFactory(); TServer serverEngine; switch (serverType) { case ServerType.TThreadPoolServer: serverEngine = new TThreadPoolServer(processorFactory, trans, transFactory, proto); break; case ServerType.TThreadedServer: serverEngine = new TThreadedServer(processorFactory, trans, transFactory, proto); break; default: serverEngine = new TSimpleServer(processorFactory, trans, transFactory, proto); break; } //Server event handler TradeServerEventHandler serverEvents = new TradeServerEventHandler(); serverEngine.setEventHandler(serverEvents); // Run it string where = (pipe != null ? "on pipe " + pipe : "on port " + port); Console.WriteLine("Starting the " + serverType.ToString() + " " + where + (processorFactoryType == ProcessorFactoryType.TPrototypeProcessorFactory ? " with processor prototype factory " : "") + (useBufferedSockets ? " with buffered socket" : "") + (useFramed ? " with framed transport" : "") + (useEncryption ? " with encryption" : "") + (compact ? " with compact protocol" : "") + (json ? " with json protocol" : "") + "..."); serverEngine.Serve(); } catch (Exception x) { Console.Error.Write(x); return false; } Console.WriteLine("done."); return true; }
static void Main(string[] args) { DNHPacketHandler handler = new DNHPacketHandler(); DNHService.Processor processor = new DNHService.Processor(handler); TServerTransport serverTransport = new TServerSocket(9090); TServer server = new TThreadPoolServer(processor, serverTransport); Console.WriteLine("Starting the server..."); server.Serve(); }
static void Main( string[] args ) { try { AutoMapperConfiguration.Initialise(); bool useBufferedSockets = false, useFramed = false; int port = 9090; if ( args.Length > 0 ) { port = int.Parse( args[0] ); if ( args.Length > 1 ) { if ( args[1] == "raw" ) { // as default } else if ( args[1] == "buffered" ) { useBufferedSockets = true; } else if ( args[1] == "framed" ) { useFramed = true; } else { // Fall back to the older boolean syntax bool.TryParse( args[1], out useBufferedSockets ); } } } // Processor DataProviderImpl testHandler = new DataProviderImpl(); DataProvider.Processor testProcessor = new DataProvider.Processor( testHandler ); // Transport TServerSocket tServerSocket = new TServerSocket( port, 0, useBufferedSockets ); // Simple Server TServer serverEngine; //if ( useFramed ) // serverEngine = new TSimpleServer( testProcessor, tServerSocket, new TFramedTransport.Factory() ); //else // serverEngine = new TSimpleServer( testProcessor, tServerSocket ); // ThreadPool Server serverEngine = new TThreadPoolServer(testProcessor, tServerSocket); // Threaded Server // serverEngine = new TThreadedServer(testProcessor, tServerSocket); //testHandler.server = serverEngine; // Run it Console.WriteLine( "Starting the server on port " + port + ( useBufferedSockets ? " with buffered socket" : "" ) + ( useFramed ? " with framed transport" : "" ) + "..." ); serverEngine.Serve(); } catch ( Exception x ) { Console.Error.Write( x ); } Console.WriteLine( "done." ); }
private const int _defaultDelayedTime = 20000; //默认延时关闭时间 public static void Start() { var _configPath = ConfigurationManager.AppSettings["ThriftServerConfigPath"]; Config.ThriftConfigSection config = null; if (string.IsNullOrEmpty(_configPath)) { config = ConfigurationManager.GetSection("thriftServer") as Config.ThriftConfigSection; } else { config = ConfigurationManager.OpenMappedExeConfiguration(new ExeConfigurationFileMap { ExeConfigFilename = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, _configPath) }, ConfigurationUserLevel.None).GetSection("thriftServer") as Config.ThriftConfigSection; } if (config == null || config.Services == null) { throw new Exception("thrift服务配置不存在"); } foreach (Service service in config.Services) { new System.Threading.Thread(() => { try { Assembly assembly = Assembly.LoadFrom(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, service.HandlerType.Split(',')[1])); object objType = assembly.CreateInstance(service.HandlerType.Split(',')[0], true); if (objType == null) { throw new Exception(service.HandlerType + "为空"); } var handle = TransparentProxy.Create(objType.GetType()); string assemblyName = service.SpaceName; //if (!string.IsNullOrEmpty(service.AssemblyName)) // assemblyName = service.AssemblyName; var processor = (Thrift.TProcessor)Type.GetType($"{service.SpaceName}.{service.ClassName}+Processor,{assemblyName}", true) .GetConstructor(new Type[] { Type.GetType($"{service.SpaceName}.{service.ClassName}+Iface,{assemblyName}", true) }) .Invoke(new object[] { handle }); TServerTransport serverTransport = new TServerSocket(service.Port, service.ClientTimeout); TServer server = new TThreadPoolServer(new BaseProcessor(processor, service), serverTransport, new TTransportFactory(), new TTransportFactory(), new TBinaryProtocol.Factory(), new TBinaryProtocol.Factory(), service.MinThreadPoolThreads, service.MaxThreadPoolThreads, (x) => { ThriftLog.Info("log:" + x); }); RegeditConfig regiditConfig = null; if (service.ZookeeperConfig != null && service.ZookeeperConfig.Host != "") { regiditConfig = ConfigCenter.RegeditServer(service); //zookeeper 注册服务 } ThriftLog.Info($"{service.Name} {service.Port} Starting the TThreadPoolServer..."); _services.Add(server, regiditConfig); server.Serve(); } catch (Exception ex) { ThriftLog.Error(ex.Message + ex.StackTrace); } }).Start(); } }
public static void StartMult() { var _configPath = ConfigurationManager.AppSettings["ThriftServerConfigPath"]; Config.ThriftConfigSection config = null; if (string.IsNullOrEmpty(_configPath)) { config = ConfigurationManager.GetSection("thriftServer") as Config.ThriftConfigSection; } else { config = ConfigurationManager.OpenMappedExeConfiguration(new ExeConfigurationFileMap { ExeConfigFilename = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, _configPath) }, ConfigurationUserLevel.None).GetSection("thriftServer") as Config.ThriftConfigSection; } if (config == null || config.Services == null) { throw new Exception("thrift服务配置不存在"); } foreach (Service service in config.Services) { new System.Threading.Thread(() => { try { TMultiplexedProcessor multiplexedProcessor = new TMultiplexedProcessor(); Type[] thriftTypes = Assembly.LoadFrom(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, service.ThriftAssembly)).GetTypes(); Type[] thriftImplTypes = Assembly.LoadFrom(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, service.ThriftImplAssembly)).GetTypes(); foreach (var t in thriftTypes) { if (!t.Name.Equals("Iface")) { continue; } string processorFullName = t.FullName.Replace("+Iface", "+Processor"); Type processorType = thriftTypes.FirstOrDefault(c => c.FullName.Equals(processorFullName)); object handle = null; foreach (Type t2 in thriftImplTypes) { if (t2.GetInterfaces().Contains(t)) { handle = TransparentProxy.Create(t2); break; } } var processor = (Thrift.TProcessor)processorType.GetConstructor(new Type[] { t }).Invoke(new object[] { handle }); multiplexedProcessor.RegisterProcessor(t.ReflectedType.Name, processor); } if (service.Port > 0) { if (!PortHelper.PortIsAvailable(service.Port)) { throw new Exception("端口冲突"); } } else { service.Port = PortHelper.GetFirstAvailablePort(); if (service.Port <= 0) { throw new Exception("无端口可用"); } } TServerTransport serverTransport = new TServerSocket(service.Port, service.ClientTimeout); TServer server = new TThreadPoolServer(new BaseProcessor(multiplexedProcessor, service), serverTransport, new TTransportFactory(), new TTransportFactory(), new TBinaryProtocol.Factory(), new TBinaryProtocol.Factory(), service.MinThreadPoolThreads, service.MaxThreadPoolThreads, (x) => { ThriftLog.Info("log:" + x); }); RegeditConfig regiditConfig = null; if (service.ZookeeperConfig != null && service.ZookeeperConfig.Host != "") { regiditConfig = ConfigCenter.RegeditServer(service); //zookeeper 注册服务 } ThriftLog.Info($"{service.Name} {service.Port} Starting the TThreadPoolServer..."); _services.Add(server, regiditConfig); server.Serve(); } catch (Exception ex) { ThriftLog.Error(ex.Message + ex.StackTrace); } }).Start(); } }