public TrafficRequest(string commandid, object udata, IDataProvider dataprovider) { giveDataType = RequestDataType.UserIProvider; CommandId = commandid; dataProvider = dataprovider; UserData = udata; }
/// <summary> /// 통신에 필요한 데이터를 초기화합니다. /// </summary> private void ClearData() { isTransmitData = false; method = HTTPMethod.NONE; reqStr = string.Empty; type = RequestDataType.NONE; fieldDatas = null; headerDatas = null; needBlock = true; }
/// <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; }
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; }
/// <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); }
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; }
/// <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"); }
/// <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; } }
/// <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; } }