public override bool OnStart() { ServicePointManager.DefaultConnectionLimit = 64; ServicePointManager.Expect100Continue = false; ServicePointManager.UseNagleAlgorithm = false; #region Launch silo in separate AppDomain var dataConnectionString = RoleEnvironment.GetConfigurationSettingValue("DataConnectionString"); var orleansSiloConfiguration = File.ReadAllText("OrleansConfiguration.xml").Replace( "XXXDataConnectionStringValueXXX", dataConnectionString); this.siloHost = new SiloHost(); this.siloHost.StartLobbyServiceSiloAppDomain(orleansSiloConfiguration); #endregion Trace.TraceInformation("LobbyServiceInstanceId " + this.SharedSettings.InstanceId); Trace.TraceInformation("Settings.IPEndPoint " + this.LobbyServiceSettings.IPEndPoint.ToString()); if (!OrleansAzureClient.IsInitialized) { OrleansAzureClient.Initialize("ClientConfiguration.xml"); } var server = new AsyncServerHost(this.LobbyServiceSettings.IPEndPoint); this.lobbyServerImpl = cc.GetExportedValue <LobbyServerImpl>(); this.lobbyTask = server.Start(lobbyServerImpl, cts.Token); return(true); }
static void Main(string[] args) { Console.Title = "Backend.GameServer"; if (args.Length != 4) { Console.Error.WriteLine("Provide ip address (such as 127.0.0.1), TCP port and secret key (base64) as command line args"); return; } var argIpAddress = args[0]; var argPortNumber = args[1]; var argSecretKey = args[2]; var argGameServerId = args[3]; IPAddress address; if (!IPAddress.TryParse(argIpAddress, out address)) { Console.Error.WriteLine("\"{0}\" is not a valid IP address", args[0]); return; } int port; if (!int.TryParse(argPortNumber, out port)) { Console.Error.WriteLine("\"{0}\" is not a valid TCP port", args[1]); return; } var ipEndPoint = new IPEndPoint(address, port); byte[] secretKey = Convert.FromBase64String(argSecretKey); var gameServerID = new GameServerID { ID = Guid.Parse(argGameServerId) }; Console.WriteLine("Listen on {0}", ipEndPoint); var cts = new CancellationTokenSource(); var server = new AsyncServerHost(ipEndPoint); var gameServerImpl = new GameServerImpl(gameServerID, secretKey); Task t = server.Start(gameServerImpl, cts.Token); Console.WriteLine("Launched game server process on {0}", ipEndPoint); t.Wait(); }
static void Main(string[] args) { Console.Title = "Backend.LobbyServer"; var cts = new CancellationTokenSource(); var compositionContainer = new CompositionContainer(new AggregateCatalog( new AssemblyCatalog(typeof(DevelopmentSettingsProvider).Assembly) )); var settings = compositionContainer.GetExportedValue <LobbyServiceSettings>(); var lobbyServerImpl = compositionContainer.GetExportedValue <LobbyServerImpl>(); var server = new AsyncServerHost(settings.IPEndPoint); Task t = server.Start(lobbyServerImpl, cts.Token); Console.WriteLine("Loby server launched"); Console.ReadLine(); cts.Cancel(); }