static void Main(string[] args) { ServerInitializer initializer = new ServerInitializer(); initializer.StartServer(); Console.ReadKey(); }
void Run(ServerBootstrap sb, Bootstrap cb) { var serverInitializer = new ServerInitializer(); sb.ChildHandler(serverInitializer); var clientInitializer = new ClientInitializer(); cb.Handler(clientInitializer); // start server Task <IChannel> task = sb.BindAsync(LoopbackAnyPort); Assert.True(task.Wait(DefaultTimeout), "Server bind timed out"); this.serverChannel = task.Result; Assert.NotNull(this.serverChannel.LocalAddress); var endPoint = (IPEndPoint)this.serverChannel.LocalAddress; // connect to server task = cb.ConnectAsync(endPoint); Assert.True(task.Wait(DefaultTimeout), "Connect to server timed out"); this.clientChannel = task.Result; Assert.NotNull(this.clientChannel.LocalAddress); Assert.True(serverInitializer.Initialized.Wait(DefaultTimeout), "Channel initialize timed out"); Assert.True(serverInitializer.Close()); // Server connection closed will cause the client // to receive EOF and the channel should go inactive Assert.True(clientInitializer.Inactive.Wait(DefaultTimeout), "TcpChannel should fire Inactive if the server connection is closed."); Assert.Null(clientInitializer.ErrorCaught); }
static void Main(string[] args) { string password; int serverPort; int servicePort; bool usingIpV6; if (args.Length < 4) { WriteHelp(); return; } password = args[0]; if (!int.TryParse(args[1], out serverPort)) { WriteHelp(); return; } if (!int.TryParse(args[2], out servicePort)) { WriteHelp(); return; } if (!bool.TryParse(args[3], out usingIpV6)) { WriteHelp(); return; } var initializer = new ServerInitializer { AdminPassword = password, PluginsPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "plugins"), ExcludedPlugins = new string[0] }; ServerModel.Init(initializer); ServerModel.Server.Start(serverPort, servicePort, usingIpV6); Console.WriteLine("Enter \"exit\" for server stop"); while (true) { var command = Console.ReadLine(); if (string.Equals(command, "exit", StringComparison.OrdinalIgnoreCase)) { break; } } ServerModel.Reset(); }
public WorkflowBuilder Build() { this._workflow.MapHandlers(this._client); this._client.LoginAsync(TokenType.Bot, this._token).Wait(); this._client.StartAsync().Wait(); ServerInitializer.Initialize(this._client, this._context); return(this); }
static void Main(string[] argsRaw) { var args = new ArgsParser(argsRaw, WriteHelp); var serverAddresss = args.Get(ServerAddressName); var p2pServicePort = args.Get <int>(ServicePortName, int.TryParse); var certificatePath = args.Get(CertificatePathName); var certificatePassword = args.GetOrDefault(CertificatePasswordName, null); var adminPassword = args.Get(AdminPasswordName); if (!File.Exists(certificatePath)) { Console.WriteLine("File not found: {0}", certificatePath); WriteHelp(); return; } AppDomain.CurrentDomain.UnhandledException += (sender, e) => { var error = e.ExceptionObject as Exception; if (error == null) { return; } var logger = new Logger(AppDomain.CurrentDomain.BaseDirectory + "/UnhandledError.log"); logger.Write(error); }; var initializer = new ServerInitializer { AdminPassword = adminPassword, PluginsPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "plugins"), ExcludedPlugins = new string[0], Certificate = new X509Certificate2(certificatePath, CreateSecureString(certificatePassword)) }; ServerModel.Init(initializer); var serverUri = Connection.CreateTcpchatUri(serverAddresss); ServerModel.Server.Start(serverUri, p2pServicePort); Console.WriteLine("Enter \"exit\" for server stop"); while (true) { var command = Console.ReadLine(); if (string.Equals(command, "exit", StringComparison.OrdinalIgnoreCase)) { break; } } ServerModel.Reset(); }
public WorkflowBuilder Build() { _workflow.Initialize(); _workflow.MapHandlers(_client); _client.LoginAsync(TokenType.Bot, _token).Wait(); _client.StartAsync().Wait(); ServerInitializer.Initialize(_client); return(this); }
private void EnableServer(object obj) { var dialog = new ServerDialog(); if (dialog.ShowDialog() != true) { return; } try { var excludedPlugins = Settings.Current.Plugins .Where(s => !s.Enabled) .Select(s => s.Name) .ToArray(); var initializer = new ServerInitializer { AdminPassword = Settings.Current.AdminPassword, PluginsPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "plugins"), ExcludedPlugins = excludedPlugins }; ServerModel.Init(initializer); ServerModel.Server.Start(Settings.Current.Port, Settings.Current.ServicePort, Settings.Current.StateOfIPv6Protocol); InitializeClient(true); } catch (ArgumentException) { SelectedRoom.AddSystemMessage(Localizer.Instance.Localize(ParamsErrorKey)); if (ClientModel.IsInited) { ClientModel.Reset(); } if (ServerModel.IsInited) { ServerModel.Reset(); } } }
private void EnableServer(object obj) { var dialog = new ServerDialog(); if (dialog.ShowDialog() == true) { try { var adminPassword = Settings.Current.AdminPassword; var p2pPort = Settings.Current.ServerStartP2PPort; var excludedPlugins = Settings.Current.Plugins .Where(s => !s.Enabled) .Select(s => s.Name) .ToArray(); var initializer = new ServerInitializer { AdminPassword = adminPassword, PluginsPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, PluginsDirectoryName), ExcludedPlugins = excludedPlugins, Certificate = new X509Certificate2(dialog.CertificatePath, dialog.CertificatePassword), }; ServerModel.Init(initializer); var serverStartUri = Connection.CreateTcpchatUri(dialog.ServerAddress); ServerModel.Server.Start(serverStartUri, p2pPort); dialog.SaveSettings(); } catch (Exception e) { var errorMessage = Localizer.Instance.Localize(ParamsErrorKey); SelectedRoom.AddSystemMessage($"{errorMessage}\r\n{e.Message}"); if (ServerModel.IsInited) { ServerModel.Reset(); } } } }
static ServerInitializer() // called by Unity. { initializer = new ServerInitializer(); }
protected override void OnOpen() { Send("Log:---------- connected to Unity:" + DateTime.Now + " ----------"); ServerInitializer.Initialized(this.SendToBrowser); }