/// <summary> /// Initialise GameSparks with a given platform implementation. /// </summary> public void Initialise(IGSPlatform platform) { GSPlatform = platform; _paused = false; RetryBase = GS.RetryBase; RetryMax = GS.RetryMax; RequestTimeout = GS.RequestTimeout; DurableConcurrentRequests = GS.DurableConcurrentRequests; DurableDrainInterval = GS.DurableDrainInterval; HandshakeOffset = GS.HandshakeOffset; InitialisePersistentQueue(); DurableQueueRunning = true; _currentSocketUrl = BuildServiceUrl(GSPlatform); lock (_connections) { _connections.Add(new GSConnection(this, GSPlatform, _currentSocketUrl)); } CalcNewReconnectionTimeout(1); InitAllTimers(); }
private static String BuildServiceUrl(IGSPlatform platform) { #if DEBUG if (customUrlBase.Length <= 0) #endif { String credential = platform.ApiCredential == null ? "device" : platform.ApiCredential; String apiDomain = platform.ApiDomain == null ? "ws.gamesparks.net" : platform.ApiDomain; if (platform.ApiSecret.Contains(":")) { credential = "secure"; } return(String.Format(serviceUrlBase, platform.ApiStage, platform.ApiKey, credential, apiDomain)); } #if DEBUG else { return(String.Format(customUrlBase, platform.ApiKey)); } #endif }
internal GSConnection(GSInstance gs, IGSPlatform gsPlatform, String currentUrl) { this._gs = gs; this._gSPlatform = gsPlatform; url = currentUrl; mustConnectBy = DateTime.Now.AddMilliseconds(gs.HandshakeOffset).Ticks; #if DEBUG if (GSInstance.customUrlBase.Length <= 0) #endif { if (url.IndexOf('?') == -1) { url += "?deviceOS=" + gsPlatform.DeviceOS; url += "&deviceID=" + gsPlatform.DeviceId; url += "&SDK=" + gsPlatform.SDK; } } _gSPlatform.DebugMsg("Connecting to:" + url); EnsureConnected(); }
/// <summary> /// Initialise GameSparks with a given platform implementation. /// </summary> public static void Initialise(IGSPlatform gSPlatform) { Instance.Initialise(gSPlatform); }