Ejemplo n.º 1
0
 public TrafficRequest(string commandid, object udata, IDataProvider dataprovider)
 {
     giveDataType = RequestDataType.UserIProvider;
     CommandId    = commandid;
     dataProvider = dataprovider;
     UserData     = udata;
 }
Ejemplo n.º 2
0
 /// <summary>
 /// 통신에 필요한 데이터를 초기화합니다.
 /// </summary>
 private void ClearData()
 {
     isTransmitData = false;
     method         = HTTPMethod.NONE;
     reqStr         = string.Empty;
     type           = RequestDataType.NONE;
     fieldDatas     = null;
     headerDatas    = null;
     needBlock      = true;
 }
Ejemplo n.º 3
0
        /// <summary>
        /// 해당 구조체를 생성합니다.
        /// 이 떄 httpMethod는 반드시 필요합니다.
        /// 이 외의 데이터들은 이후에 세팅합니다.
        /// </summary>
        /// <param name="_httpMethod"> 통신방식을 지정합니다. </param>
        /// <param name="_needMyInfo"> 내 유저id값의 필요 유무를 지정합니다. 기본값은 true 입니다.</param>
        public RequestData(HTTPMethod _httpMethod, RequestDataType _requestType, bool _needMyInfo = true)
        {
            fieldDic    = new Dictionary <string, string>();
            headerDic   = new Dictionary <string, string>();
            httpMethod  = _httpMethod;
            reqDataType = _requestType;

            reqStr    = string.Empty;
            needBlock = true;
        }
Ejemplo n.º 4
0
 public TrafficRequest(string commandid, object udata, params object[] pars)
 {
     giveDataType = RequestDataType.GiveData;
     CommandId    = commandid;
     parsList.Clear();
     foreach (var p in pars)
     {
         parsList.Add(p);
     }
     UserData = udata;
 }
Ejemplo n.º 5
0
        /// <summary>
        /// Create a copy of <see cref="AvailableDataRequestMessage"/>.
        /// </summary>
        /// <returns>Copy.</returns>
        public override Message Clone()
        {
            var clone = new AvailableDataRequestMessage
            {
                SecurityId      = SecurityId,
                Format          = Format,
                RequestDataType = RequestDataType?.TypedClone(),
            };

            CopyTo(clone);
            return(clone);
        }
Ejemplo n.º 6
0
 public RequestData(HttpWebRequest request, RequestDataType type, ReciveData re)
 {
     _Request    = request;
     _DataType   = type;
     _ReciveData = re;
     if (type == RequestDataType.Text)
     {
         _BufferRead = new byte[BuffSize];
     }
     else
     {
         _BufferRead = null;
     }
     _Stream = null;
 }
Ejemplo n.º 7
0
    /// <summary>
    /// Http 통신을 시작합니다.
    /// </summary>
    /// <param name="reqData">프로토콜 요청 데이터가 모인 구조체입니다.</param>
    private void HttpsCall(RequestData reqData)
    {
        if (isTransmitData == true)
        {
            return;
        }

        // 통신전 초기화를 위해 기존 데이터들을 지워줍니다.
        ClearData();

        // 통신중을 알리는 플래그를 체크합니다.
        // ClearData()를 통해 해당 플래그가 false가 되기 때문에 반드시 이후에 체크를 해야합니다.
        isTransmitData = true;

        method      = reqData.GetHttpMethod();
        reqStr      = reqData.GetReqStr();
        type        = reqData.GetRequestDataType();
        fieldDatas  = reqData.GetFieldDatas();
        headerDatas = reqData.GetHeaderDatas();


        // 코루틴을 통해 통신 요청
        StartCoroutine("HttpsRequest");
    }
Ejemplo n.º 8
0
        /// <summary>
        /// 데이터 오류 이벤트
        /// 데이터 통신이 실패하면 들어오는 함수입니다.
        /// </summary>
        /// <param name="errorCode">에러 코드</param>
        /// <param name="reqType">데이터 타입</param>
        public static void OnError(ErrorCode errorCode, RequestDataType reqType)
        {
            string errorMsg = Enum.GetName(typeof(ErrorCode), errorCode);

            Debug.LogWarning(errorMsg);
            switch (reqType)
            {
            case RequestDataType.NONE:
                break;

            case RequestDataType.LOGIN:
                foreach (var item in new List <SalinCallbacks>(callbacks))
                {
                    item.OnLogInFail(errorCode);
                }
                break;

            case RequestDataType.LOGOUT:
                foreach (var item in new List <SalinCallbacks>(callbacks))
                {
                    item.OnLogOutFail(errorCode);
                }
                break;

            case RequestDataType.SIGNUP:
                foreach (var item in new List <SalinCallbacks>(callbacks))
                {
                    item.OnSignUpFail(errorCode);
                }
                break;

            case RequestDataType.UPDATESTATE:
                foreach (var item in new List <SalinCallbacks>(callbacks))
                {
                    item.OnUpdateStateFail(errorCode);
                }
                break;

            case RequestDataType.REQUESTFRIEND:
                foreach (var item in new List <SalinCallbacks>(callbacks))
                {
                    item.OnRequestFriendFail(errorCode);
                }
                break;

            case RequestDataType.RESPONSEFRIEND:
                foreach (var item in new List <SalinCallbacks>(callbacks))
                {
                    item.OnResponseFriendFail(errorCode);
                }
                break;

            case RequestDataType.FRIENDLIST:

                break;

            case RequestDataType.REMOVEFRIEND:
                foreach (var item in new List <SalinCallbacks>(callbacks))
                {
                    item.OnRemoveFriendFail(errorCode);
                }
                break;

            case RequestDataType.SEARCHFRIEND:
                foreach (var item in new List <SalinCallbacks>(callbacks))
                {
                    item.OnSearchFriendFail(errorCode);
                }
                break;

            case RequestDataType.SEARCHFRIENDLIST:
                foreach (var item in new List <SalinCallbacks>(callbacks))
                {
                    item.OnSearchFriendListFail(errorCode);
                }
                break;

            default:
                break;
            }
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Transmitter에서 데이터, 데이터 타입등을 받아옵니다.
        /// </summary>
        /// <param name="responData">데이터</param>
        /// <param name="reqType">데이터 타입</param>
        public static void OnEvent(ResponseData responData, RequestDataType reqType)
        {
            switch (reqType)
            {
            case RequestDataType.APPTOKEN:
            {
                string appToken = string.Empty;
                if (responData.jsonData.JsonDataContainsKey(SalinAPIKey.apptoken))
                {
                    appToken = responData.jsonData[SalinAPIKey.apptoken].ToString();
                }
                foreach (var item in new List <SalinCallbacks>(callbacks))
                {
                    item.OnConnectedMainServer(appToken);
                }
            }
            break;

            case RequestDataType.LOGIN:
            {
                UserInfo user = UserInfo.Convert(responData.jsonData);
                UserManager.Instance.UpdateUserInfo(user);
                foreach (var item in new List <SalinCallbacks>(callbacks))
                {
                    item.OnLogIn(user);
                }
                XRSocialSDK.myPlayer.UpdatePlayerInfo(user);
            }
            break;

            case RequestDataType.LOGOUT:
            {
                foreach (var item in new List <SalinCallbacks>(callbacks))
                {
                    item.OnLogOut();
                }
                UserManager.Instance.UpdateUserInfo(null);
            }
            break;

            case RequestDataType.SIGNUP:
            {
                foreach (var item in new List <SalinCallbacks>(callbacks))
                {
                    item.OnSignUp();
                }
            }
            break;

            case RequestDataType.REQUESTFRIEND:
            {
                UserInfo userInfo = new UserInfo();
                foreach (var item in new List <SalinCallbacks>(callbacks))
                {
                    item.OnRequestFriend(userInfo);
                }
            }
            break;

            case RequestDataType.RESPONSEFRIEND:
            {
                foreach (var item in new List <SalinCallbacks>(callbacks))
                {
                    UserInfo userInfo = new UserInfo();
                    item.OnResponseFriend(userInfo);
                }
            }
            break;

            case RequestDataType.UPDATESTATE:
            {
                JsonData json = responData.jsonData;
                if (json.JsonDataContainsKey(JsonKey.friend))
                {
                    List <Friend> tmpList = Friend.ConvertToList(json[JsonKey.friend]);

                    foreach (var item in new List <SalinCallbacks>(callbacks))
                    {
                        item.OnUpdateState(tmpList);
                    }
                }
            }
            break;

            case RequestDataType.FRIENDLIST:
            {
            }
            break;

            case RequestDataType.REMOVEFRIEND:
            {
                foreach (var item in new List <SalinCallbacks>(callbacks))
                {
                    item.OnRemoveFriend(new UserInfo());
                }
            }
            break;

            case RequestDataType.SEARCHFRIEND:
            {
                foreach (var item in new List <SalinCallbacks>(callbacks))
                {
                    UserInfo userInfo = new UserInfo();
                    item.OnSearchFriend(userInfo);
                }
            }
            break;

            case RequestDataType.SEARCHFRIENDLIST:
            {
                JsonData json = responData.jsonData;

                if (json.JsonDataContainsKey(JsonKey.user))
                {
                    List <Friend> tmpList = Friend.ConvertToList(json[JsonKey.user]);
                    foreach (var item in new List <SalinCallbacks>(callbacks))
                    {
                        item.OnSearchFriendList(tmpList);
                    }
                }
            }
            break;

            default:
                break;
            }
        }