private IEnumerator RetryConnect() { if (requestQueueItem.retryCount < requestQueueItem.retryLimits) { yield return(new WaitForSecondsRealtime(RETRY_CONNECT_DELAY)); yield return(GamebaseUnitySDKSettings.Instance.StartCoroutine(InternetReachability((reachable) => { if (true == reachable) { GamebaseUnitySDKSettings.Instance.StartCoroutine(socket.Reconnect((error) => { if (true == Gamebase.IsSuccess(error)) { RequestEnqueue(requestQueueItem); requestQueueItem = null; return; } RetryItem(); })); } else { RetryItem(); } GamebaseLog.Debug(string.Format("index:{0}, apiId:{1}, retryCount:{2}, internetReachability:{3}", requestQueueItem.index, requestQueueItem.requestVO.apiId, requestQueueItem.retryCount, reachable), this, "RetryConnect"); }))); } else { GamebaseLog.Debug(string.Format("Reconnect failed. Index of queue item:{0}", requestQueueItem.index), this, "RetryConnect"); requestQueueItem.callback(string.Empty, new GamebaseError(GamebaseErrorCode.SOCKET_ERROR)); requestQueueItem = null; } }