Beispiel #1
0
    private IEnumerator SendWebRequest(WebPacketQueue webPacket)
    {
        IsWating = true;

        webPacket.SendLog();
        UnityWebRequest www = UnityWebRequest.Post(URL, webPacket.GetWWWFrom());

        yield return(www.SendWebRequest());

        string responseData = www.downloadHandler.text;

        Debug.Log("Recv : " + responseData);

        //var testLog = Newtonsoft.Json.JsonConvert.DeserializeObject<WebResponseProfile>(responseData);
        //Debug.Log("testLog : " + testLog);
        //Debug.Log("testLog : " + testLog.actorInfos);

        BaseWebResponse responseClass = (BaseWebResponse)JsonUtility.FromJson(responseData, webPacket.Request.GetResponseType);

        if (webPacket.Request.ResponseCallBack == null)
        {
            // 콜백이 없다면 곧바로 에러 체크
            IsError(responseClass.result, responseClass.msg, false);
        }
        else
        {
            // 콜백이 있으면 콜백 호출
            // 웹으로부터 받은 정보가 에러일 경우 해당 콜백에서 처리
            // (해당 콜백에서만 처리 가능한 작업들이 있을 수 있으므로)
            webPacket.Request.ResponseCallBack(responseClass);
        }

        IsWating = false;
    }
Beispiel #2
0
    public void SendProfile(WebRequestProfile request)
    {
        WebPacketQueue webPacket = new WebPacketQueue(request);

        webPacket.AddField("order", "profile");
        webPacket.AddField("name", "findProfile");
        webPacket.AddField("pid", request.Pid);

        Send(webPacket);
    }
    public void SendLogout(WebRequestLogout request)
    {
        WebPacketQueue webPacket = new WebPacketQueue(request);

        webPacket.AddField("order", "login");
        webPacket.AddField("name", "logout");
        webPacket.AddField("pid", request.Pid);

        Send(webPacket);
    }
    public void SendLogin(WebRequestLogin request)
    {
        WebPacketQueue webPacket = new WebPacketQueue(request);

        webPacket.AddField("order", "login");
        webPacket.AddField("name", "login");
        webPacket.AddField("id", request.ID);
        webPacket.AddField("password", request.Password);

        Send(webPacket);
    }
    public void SendDeleteCharacter(WebRequestDeleteCharacter request)
    {
        WebPacketQueue webPacket = new WebPacketQueue(request);

        webPacket.AddField("order", "profile");
        webPacket.AddField("name", "deleteCharacter");
        webPacket.AddField("pid", request.Pid);
        webPacket.AddField("slotIndex", request.SlotIndex);

        Send(webPacket);
    }
Beispiel #6
0
    public void SendRegister(WebRequestRegister request)
    {
        WebPacketQueue webPacket = new WebPacketQueue(request);

        webPacket.AddField("order", "login");
        webPacket.AddField("name", "register");
        webPacket.AddField("id", request.Id);
        webPacket.AddField("password", request.Password);
        webPacket.AddField("pin", request.Pin.ToString());

        Send(webPacket);
    }
    public void SendCreateCharacter(WebRequestCreateCharacter request)
    {
        WebPacketQueue webPacket = new WebPacketQueue(request);

        webPacket.AddField("order", "profile");
        webPacket.AddField("name", "registerCharacter");
        webPacket.AddField("pid", request.Pid);
        webPacket.AddField("nickname", request.Nickname);
        webPacket.AddField("status", request.Status);
        webPacket.AddField("slotIndex", request.SlotIndex);

        Send(webPacket);
    }
Beispiel #8
0
    public void Send(WebPacketQueue webPacket)
    {
        if (IsWating)
        {
            Debug.Log("IsWating! " + JsonUtility.ToJson(webPacket));
            webPacketQueue.Enqueue(webPacket);
            return;
        }

        if (sendCoroutine != null)
        {
            StopCoroutine(sendCoroutine);
        }

        sendCoroutine = StartCoroutine(SendWebRequest(webPacket));
    }