예제 #1
0
 static private void HandleNonerrorResponse(byte[] responseBytes, ResponseHandlerDelegate resultHandler)
 {
     try
     {
         resultHandler(responseBytes);
     }
     catch (Exception e)
     {
         string logString = "parsing a non-error server message resulted in this error: " + e.Message;
         UnityEngine.Debug.LogException(new Exception(logString));
     }
 }
예제 #2
0
        public static void HandleResult(WWW recvResult, ResponseHandlerDelegate resultHandler)
        {
            byte[] responseBytes = new byte[0];
            if (NetworkErrorChecking(recvResult))
            {
                responseBytes = recvResult.bytes;
                //UnityEngine.Debug.Log ("Recv result is " + recvResult.bytes.Length + " bytes long");
                //UnityEngine.Debug.Log ("parse response");

                if (responseBytes.Length == 0)
                {
                    Logger.BasicLog("I got an empty server response.  This is normal for certain responses.");
                    return;
                }

                bool isAnError = true;
                try
                {
                    isAnError = Response.ParseServerErrorResponse(responseBytes);
                }
                catch
                {
                    HandleNonerrorResponse(responseBytes, resultHandler);
                }
                if (!isAnError)
                {
                    HandleNonerrorResponse(responseBytes, resultHandler);
                }
            }
            else
            {
                string logString = "A SenseiX message (Handler: " + resultHandler.Method.Name + ") had an error.  " +
                                   "Most likely internet connectivity issues.";
                UnityEngine.Debug.LogWarning(logString);
                if (secretStagingMode)
                {
                    ThinksyPlugin.ShowEmergencyWindow(logString);
                }
                SenseixSession.SetSessionState(false);
            }
            return;
        }
예제 #3
0
        public static IEnumerator CoroutinePostRequest(ProtoBuf.IExtensible serializableRequest, ResponseHandlerDelegate responseHandler, string url, bool isGet)
        {
            //UnityEngine.Debug.Log ("set up recv result");
            WWW recvResult = SetUpRecvResult(serializableRequest, url, isGet);

            yield return GetSingletonInstance().StartCoroutine(
                CoroutinePostRequest (recvResult, serializableRequest, responseHandler, url));
        }
예제 #4
0
 private static void HandleNonerrorResponse(byte[] responseBytes, ResponseHandlerDelegate resultHandler)
 {
     try
     {
         resultHandler(responseBytes);
     }
     catch (Exception e)
     {
         string logString = "parsing a non-error server message resulted in this error: " + e.Message;
         UnityEngine.Debug.LogException(new Exception(logString));
     }
 }
예제 #5
0
        public static void HandleResult(WWW recvResult, ResponseHandlerDelegate resultHandler)
        {
            byte[] responseBytes = new byte[0];
            if (NetworkErrorChecking(recvResult))
            {
                responseBytes = recvResult.bytes;
                //UnityEngine.Debug.Log ("Recv result is " + recvResult.bytes.Length + " bytes long");
                //UnityEngine.Debug.Log ("parse response");

                if (responseBytes.Length == 0)
                {
                    Logger.BasicLog("I got an empty server response.  This is normal for certain responses.");
                    return;
                }

                bool isAnError = true;
                try
                {
                    isAnError = Response.ParseServerErrorResponse(responseBytes);
                }
                catch
                {
                    HandleNonerrorResponse(responseBytes, resultHandler);
                }
                if (!isAnError)
                {
                    HandleNonerrorResponse(responseBytes, resultHandler);
                }
            }
            else
            {
                string logString = "A SenseiX message (Handler: " + resultHandler.Method.Name + ") had an error.  " +
                    "Most likely internet connectivity issues.";
                UnityEngine.Debug.LogWarning (logString);
                if (secretStagingMode)
                {
                    ThinksyPlugin.ShowEmergencyWindow(logString);
                }
                SenseixSession.SetSessionState (false);
            }
            return;
        }
예제 #6
0
 public static IEnumerator CoroutinePostRequest(WWW recvResult, ProtoBuf.IExtensible serializableRequest, ResponseHandlerDelegate responseHandler, string url)
 {
     if (!SenseixSession.GetSessionState())
     {
         yield break;
     }
     //UnityEngine.Debug.Log ("wait for request");
     yield return GetSingletonInstance().StartCoroutine(WaitForRequest (recvResult));
     //UnityEngine.Debug.Log ("handle result");
     HandleResult (recvResult, responseHandler);
 }
예제 #7
0
        public static IEnumerator CoroutinePostRequest(WWW recvResult, ProtoBuf.IExtensible serializableRequest, ResponseHandlerDelegate responseHandler, string url)
        {
            if (!SenseixSession.GetSessionState())
            {
                yield break;
            }
            //UnityEngine.Debug.Log ("wait for request");
            yield return(GetSingletonInstance().StartCoroutine(WaitForRequest(recvResult)));

            //UnityEngine.Debug.Log ("handle result");
            HandleResult(recvResult, responseHandler);
        }
예제 #8
0
        public static IEnumerator CoroutinePostRequest(ProtoBuf.IExtensible serializableRequest, ResponseHandlerDelegate responseHandler, string url, bool isGet)
        {
            //UnityEngine.Debug.Log ("set up recv result");
            WWW recvResult = SetUpRecvResult(serializableRequest, url, isGet);

            yield return(GetSingletonInstance().StartCoroutine(
                             CoroutinePostRequest(recvResult, serializableRequest, responseHandler, url)));
        }
 internal ResponseHandler(NumberOrString id, Type responseType, ResponseHandlerDelegate handler)
 {
     Id           = id;
     ResponseType = responseType;
     this.handler = handler;
 }
예제 #10
0
 internal ResponseHandler(NumberOrString id, Type responseType, ResponseHandlerDelegate handler)
 {
     _id           = id;
     _responseType = responseType;
     _handler      = handler;
 }
예제 #11
0
 public CommonHttpClient(ResponseHandlerDelegate <T> responseHandler)
 {
     this._client         = new HttpClient();
     this.responseHandler = responseHandler;
 }
예제 #12
0
 public CommonHttpClient()
 {
     this._client         = new HttpClient();
     this.responseHandler = DefaultResponseHandler;
 }