Ejemplo n.º 1
0
 public void GetMessages(bool forceReload, MessagesReceivedCallback success, NoConnectionCallback noconnection, MessageReceivingError failure)
 {
     if (m_CachedMessages == null || forceReload || IsTimeToReloadMessages() || !GetUserToShow().Equals(m_CachedMessageUser))
     {
         m_LastRefresh = Time.time;
         StartCoroutine(GetMessagesCoroutine(success, noconnection, failure));
     }
     else
     {
         if (success != null)
         {
             success();
         }
     }
 }
Ejemplo n.º 2
0
    public IEnumerator GetMessagesCoroutine(MessagesReceivedCallback success, NoConnectionCallback noconnection, MessageReceivingError failure)
    {
        bool hack = m_UserManager.CurrentHackedUser != null;

        UnityWebRequest request;

        if (hack)
        {
            WWWForm form = new WWWForm();
            form.AddField("targetId", m_UserManager.CurrentHackedUser);

            request = UnityWebRequest.Get(Constants.serverAddress + "api/hack/messages/" + m_UserManager.CurrentHackedUser);
        }
        else
        {
            request = UnityWebRequest.Get(Constants.serverAddress + "api/messages");
        }
        m_UserManager.SetCurrentUserAuthorization(request);

        yield return(request.SendWebRequest());

        while (!request.isDone)
        {
            yield return(new WaitForEndOfFrame());
        }

        if (request.isNetworkError)
        {
            Debug.Log("Network error: Cannot get messages: " + request.error + ", Code = " + request.responseCode);
            if (noconnection != null)
            {
                noconnection();
            }
        }
        else if (request.isHttpError)
        {
            if (request.responseCode == 500)
            {
                Debug.Log("Http error: Database search failed: " + request.error + ", Code = " + request.responseCode);
                if (failure != null)
                {
                    failure();
                }
            }
        }
        else if (request.responseCode == 200)
        {
            // response contains the message
            //Debug.Log("Messages received: " + request.downloadHandler.text);
            Dictionary <string, MessageInfo> messageData = null;

            try
            {
                messageData = JsonConvert.DeserializeObject <Dictionary <string, MessageInfo> >(request.downloadHandler.text);
            } catch (Exception)
            {
                Debug.LogError("Error: cannot deserialize messages.");
            }

            if (messageData != null)
            {
                m_CachedMessages = new Dictionary <string, MessageInfo>();
                foreach (MessageInfo m in messageData.Values)
                {
                    if (m._id != null)
                    {
                        m_CachedMessages[m._id] = m;
                    }
                }
                m_CachedMessageUser = GetUserToShow();

                if (success != null)
                {
                    success();
                }
            }
        }
    }