private static IDictionary <string, string> CreateConfigMap(GSDKConfiguration localConfig) { var finalConfig = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase); foreach (KeyValuePair <string, string> certEntry in localConfig.GameCertificates) { finalConfig[certEntry.Key] = certEntry.Value; } foreach (KeyValuePair <string, string> metadata in localConfig.BuildMetadata) { finalConfig[metadata.Key] = metadata.Value; } foreach (KeyValuePair <string, string> port in localConfig.GamePorts) { finalConfig[port.Key] = port.Value; } finalConfig[HeartbeatEndpointKey] = localConfig.HeartbeatEndpoint; finalConfig[ServerIdKey] = localConfig.SessionHostId; finalConfig[VmIdKey] = localConfig.VmId; finalConfig[LogFolderKey] = localConfig.LogFolder; finalConfig[SharedContentFolderKey] = localConfig.SharedContentFolder; finalConfig[CertificateFolderKey] = localConfig.CertificateFolder; finalConfig[TitleIdKey] = localConfig.TitleId; finalConfig[BuildIdKey] = localConfig.BuildId; finalConfig[RegionKey] = localConfig.Region; finalConfig[PublicIpV4AddressKey] = localConfig.PublicIpV4Address; finalConfig[FullyQualifiedDomainNameKey] = localConfig.FullyQualifiedDomainName; return(finalConfig); }
public void ReadConfiguration_EmptyGameGamePorts_Parsed() { var testConfig = new { heartbeatEndpoint = "heartbeatendpoint", sessionHostId = "serverid", gamePorts = new { } }; GSDKConfiguration c = JsonConvert.DeserializeObject <GSDKConfiguration>(JsonConvert.SerializeObject(testConfig)); c.GamePorts.Should().NotBeNull(); c.GamePorts.Should().HaveCount(0); }
public void ReadConfiguration_MultipleGameCertificates_Parsed() { var testConfig = new { heartbeatEndpoint = "heartbeatendpoint", sessionHostId = "serverid", gameCertificates = new Dictionary <string, string> { { "gameCert", "onetwothree" }, { "gameCert2", "threefourfive" } } }; GSDKConfiguration c = JsonConvert.DeserializeObject <GSDKConfiguration>(JsonConvert.SerializeObject(testConfig)); c.GameCertificates.Should().NotBeNull(); c.GameCertificates.Should().HaveCount(2); }
public void ReadConfiguration_MultipleGamePorts_Parsed() { var testConfig = new { heartbeatEndpoint = "heartbeatendpoint", sessionHostId = "serverid", gamePorts = new Dictionary <string, string> { { "8080", "debug" }, { "8081", "debug" } } }; GSDKConfiguration c = JsonConvert.DeserializeObject <GSDKConfiguration>(JsonConvert.SerializeObject(testConfig)); c.GamePorts.Should().NotBeNull(); c.GamePorts.Should().HaveCount(2); }
public static void Start() { string fileName = Environment.GetEnvironmentVariable(GsdkConfigFileEnvVarKey); if (!string.IsNullOrEmpty(fileName) && File.Exists(fileName)) { _gsdkconfig = _jsonInstance.DeserializeObject <GSDKConfiguration>(File.ReadAllText(fileName)); } else { Debug.LogError(string.Format("Environment variable {0} not defined", GsdkConfigFileEnvVarKey)); Application.Quit(); } _baseUrl = string.Format("http://{0}/v1/sessionHosts/{1}/heartbeats", _gsdkconfig.HeartbeatEndpoint, _gsdkconfig.SessionHostId); CurrentState.CurrentGameState = GameState.Initializing; CurrentErrorState = ErrorStates.Ok; CurrentState.CurrentPlayers = new List <ConnectedPlayer>(); CurrentState.CurrentGameHealth = "Healthy"; // initial state is healthy if (_configMap == null) { _configMap = CreateConfigMap(_gsdkconfig); } if (IsDebugging) { Debug.Log(_baseUrl); Debug.Log(_gsdkconfig.SessionHostId); Debug.Log(_gsdkconfig.LogFolder); } //Create an agent that can talk on the main-thread and pull on an interval. //This is a unity thing, need an object in the scene. if (_agentView == null) { _agentView = new GameObject("PlayFabAgentView"); _agentView.AddComponent <PlayFabMultiplayerAgentView>(); UnityEngine.Object.DontDestroyOnLoad(_agentView); } }