static void Main() { var processor = new AccountService.Processor(new AccountServiceHandler()); var transport = new TServerSocket(18801); var server = new TThreadPoolServer(processor, transport); server.Serve(); }
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(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 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); } }
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." ); }
public void Start() { _server.Serve(); }
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(); } }