예제 #1
0
        public static PacketCore HandleError(PacketErrorType error_type, string message, params object[] args)
        {
            PacketCore _ack = new PacketCore();

            PacketError _PacketError = new PacketError();

            _PacketError.type    = error_type;
            _PacketError.message = string.Format(message, args);

            _ack.Name = typeof(PacketError).FullName;
            _ack.Data = JsonConvert.SerializeObject(_PacketError, Formatting.None, NetworkCore.PacketUtil.json_ops);

            return(_ack);
        }
예제 #2
0
    void OnPacketError(CS_Client server, HTTPRequest request, object send_packet, NetworkCore.PacketError packet)
    {
        HideIndicator();
        Debug.LogWarningFormat("OnPacketError({0}, {1}) : {2}", packet.type, send_packet.GetType().FullName, packet.message);

        if (ConnectState == eConnectState.connecting)
        {
            ConnectState = eConnectState.idle;
        }

        switch (packet.type)
        {
        case NetworkCore.PacketErrorType.Title:
            Popup.Instance.ShowCallback(new PopupCallback.Callback(new Action(CallbackRestart), null), packet.message);
            break;

        case NetworkCore.PacketErrorType.SessionExpired:
            Popup.Instance.ShowCallbackKey(new PopupCallback.Callback(new Action(CallbackRestart), null), "LoginResult_SessionExpired");
            break;

        case NetworkCore.PacketErrorType.NeedToUpdate:
            Popup.Instance.ShowCallbackKey(new PopupCallback.Callback(new System.Action <string>(ApplicationUpdate), new object[] { packet.message }), "NeedToUpdate");
            break;

        case NetworkCore.PacketErrorType.Retry:
            Popup.Instance.ShowCallbackKey(new PopupCallback.Callback(new Action <CS_Client, HTTPRequest>(CallbackRetry), new object[] { server, request }, "Retry"), "ServerError", packet.message);
            IsRetry = true;
            break;

        case NetworkCore.PacketErrorType.Maintenance:
            Popup.Instance.ShowCallbackKey(new PopupCallback.Callback(new Action(CallbackQuit), null), "LoginResult_Maintenance", packet.message);
            break;

        case NetworkCore.PacketErrorType.Timeout:
            Popup.Instance.ShowCallbackKey(new PopupCallback.Callback(new Action <CS_Client, HTTPRequest>(CallbackRetry), new object[] { server, request }, "Retry"), "NetworkErrorTimeOut");
            IsRetry = true;
            break;

        case NetworkCore.PacketErrorType.UserLimit:
            Popup.Instance.ShowCallbackKey(new PopupCallback.Callback(new Action(CallbackQuit), null), "LoginResult_UserLimit", packet.message);
            break;

        case NetworkCore.PacketErrorType.Quit:
            Popup.Instance.ShowCallbackKey(new PopupCallback.Callback(new Action(CallbackQuit), null), "ServerErrorQuit", packet.message);
            break;

        case NetworkCore.PacketErrorType.Ignore:
            Popup.Instance.ShowCallbackKey(new PopupCallback.Callback(null, null), "ServerError", packet.message);
            break;

        case NetworkCore.PacketErrorType.ServerForward:
            game_server.InitUri(packet.message);
            CallbackRetry(server, request);
            break;

        case NetworkCore.PacketErrorType.Message:
            Popup.Instance.ShowMessage(packet.message);
            break;

        case NetworkCore.PacketErrorType.MessageKey:
            Popup.Instance.ShowMessageKey(packet.message);
            break;

        case NetworkCore.PacketErrorType.Reconnect:
            CallbackRetry(server, request);
            break;

        default:
            Popup.Instance.ShowCallbackKey(new PopupCallback.Callback(new Action(CallbackQuit), null), "ServerErrorQuit", packet.message);
            break;
        }
    }