コード例 #1
0
ファイル: NetworkProtocol.cs プロジェクト: lanicon/OpenP2P
        public override void OnError(object sender, NetworkPacket packet)
        {
            NetworkErrorType errorType = (NetworkErrorType)sender;

            switch (errorType)
            {
            case NetworkErrorType.ErrorConnectToServer:
                if (OnErrorConnectToServer != null)
                {
                    OnErrorConnectToServer.Invoke(this, packet);
                }
                break;

            case NetworkErrorType.ErrorReliableFailed:
                if (OnErrorReliableFailed != null)
                {
                    OnErrorReliableFailed.Invoke(this, packet);
                }
                break;

            case NetworkErrorType.ErrorNoResponseSTUN:
                if (OnErrorSTUNFailed != null)
                {
                    OnErrorSTUNFailed.Invoke(this, packet);
                }
                break;
            }
        }
コード例 #2
0
 public static void OnError <T>(HttpResponse response, T handler, ErrorMapper <T> errorMapper = null) where T : IBaseNetworkErrorHandler
 {
     if (response.Request.CompletionState == HttpRequestState.TIMEOUT)
     {
         handler.onRequestTimeOut();
         return;
     }
     if (response.StatusCode == HttpStatusCode.Unknown || string.IsNullOrEmpty(response.Text))
     {
         handler.onGeneralNetworkError();
         return;
     }
     try
     {
         ErrorResponse    errorResponse    = Service.Get <JsonService>().Deserialize <ErrorResponse>(response.Text);
         NetworkErrorType code             = (NetworkErrorType)errorResponse.code;
         bool             flag             = false;
         NetworkErrorType networkErrorType = code;
         if (networkErrorType == NetworkErrorType.INVALID_SUBSCRIPTION)
         {
             Service.Get <EventDispatcher>().DispatchEvent(default(NetworkErrors.InvalidSubscriptionError));
             flag = true;
         }
         if (!(errorMapper?.Invoke(code, handler) ?? false) && !flag)
         {
             handler.onGeneralNetworkError();
         }
     }
     catch (Exception)
     {
         handler.onGeneralNetworkError();
     }
 }
コード例 #3
0
ファイル: NetworkSocket.cs プロジェクト: lanicon/OpenP2P
        public void Failed(NetworkErrorType errorType, string errorMsg, NetworkPacket packet)
        {
            packet.Error(errorType, errorMsg);

            if (OnError != null)
            {
                OnError.Invoke(errorType, packet);
            }
        }
コード例 #4
0
 private static bool onFishingCastErrorMapper(NetworkErrorType errorType, ICastFishingRodErrorHandler handler)
 {
     if (errorType == NetworkErrorType.INPUT_BAD_REQUEST)
     {
         handler.onBadFishingState();
         return(true);
     }
     return(false);
 }
コード例 #5
0
    private static bool onPostRoomPlayersErrorMapper(NetworkErrorType errorType, IJoinRoomErrorHandler handler)
    {
        switch (errorType)
        {
        case NetworkErrorType.CP_ROOM_FULL:
            handler.onRoomFull();
            return(true);

        case NetworkErrorType.CP_NO_SERVER_FOUND:
            handler.onNoServerFound();
            return(true);

        default:
            return(false);
        }
    }
コード例 #6
0
ファイル: NetworkProtocol.cs プロジェクト: lanicon/OpenP2P
        public override void AttachErrorListener(NetworkErrorType errorType, EventHandler <NetworkPacket> func)
        {
            switch (errorType)
            {
            case NetworkErrorType.ErrorConnectToServer:
                OnErrorConnectToServer += func;
                break;

            case NetworkErrorType.ErrorReliableFailed:
                OnErrorReliableFailed += func;
                break;

            case NetworkErrorType.ErrorNoResponseSTUN:
                OnErrorSTUNFailed += func;
                break;
            }
        }
コード例 #7
0
        private static bool onPostRoomPlayersErrorMapper(NetworkErrorType errorType, IJoinIglooErrorHandler handler)
        {
            switch (errorType)
            {
            case NetworkErrorType.CP_ROOM_FULL:
                handler.onRoomFull();
                return(true);

            case NetworkErrorType.CP_NO_SERVER_FOUND:
                handler.onNoServerFound();
                return(true);

            case NetworkErrorType.CP_IGLOO_WRONG_ROOM:
                handler.onRoomChanged();
                return(true);

            case NetworkErrorType.CP_IGLOO_UNAVAILABLE:
                handler.onIglooNotAvailable();
                return(true);

            default:
                return(false);
            }
        }
コード例 #8
0
 public virtual void AttachErrorListener(NetworkErrorType errorType, EventHandler <NetworkPacket> func)
 {
 }
コード例 #9
0
 /// <summary>
 /// Parameterized constructor
 /// </summary>
 public network_error_code(NetworkErrorType type, short code) : base(TlvTag)
 {
     this.NetworkType = type;
     this.ErrorCode   = code;
 }
コード例 #10
0
 public NetworkErrorMessage(NetworkErrorType type)
 {
     Type = type;
 }
コード例 #11
0
ファイル: NetworkPacket.cs プロジェクト: lanicon/OpenP2P
 public void Error(NetworkErrorType errorType, string errorMsg)
 {
     lastErrorMessage = errorMsg;
     lastErrorType    = errorType;
 }