Esempio n. 1
0
    IEnumerator SQSMessagePostAsync(GamePayload payload)
    {
        var    request        = new UnityWebRequest(simpleQueingServiceURL, "POST");
        string bodyJsonString = JsonUtility.ToJson(payload);

        Log(bodyJsonString);

        byte[] bodyRaw = Encoding.UTF8.GetBytes(bodyJsonString);
        request.SetRequestHeader("X-Api-Key", apiKey);
        request.uploadHandler   = (UploadHandler) new UploadHandlerRaw(bodyRaw);
        request.downloadHandler = (DownloadHandler) new DownloadHandlerBuffer();
        request.SetRequestHeader("Content-Type", "application/json");

        yield return(request.SendWebRequest());

        if (request.isNetworkError)
        {
            Log("SQS POST Error: " + request.error);
        }
        else
        {
            Log("SQS POST Resonse Code: " + request.responseCode);
            Log("SQS POST Result: " + request.downloadHandler.text);
        }
    }
Esempio n. 2
0
    public void SendSQSMessage(string message)
    {
        GamePayload payload = new GamePayload();

        payload.message = message;

        StartCoroutine(SQSMessagePostAsync(payload));
    }
Esempio n. 3
0
    IEnumerator SQSMessageDeleteAsync(string receiptHandle, string payloadString, OnMessageReceived mesgRecvCallback)
    {
        Log(string.Format("Deleting SQS message"));

        string requestURL = string.Format("{0}message?receiptHandle={1}", simpleQueingServiceURL, UnityWebRequest.EscapeURL(receiptHandle));
        var    request    = new UnityWebRequest(requestURL, "DELETE");

        request.SetRequestHeader("X-Api-Key", apiKey);
        request.downloadHandler = (DownloadHandler) new DownloadHandlerBuffer();

        yield return(request.SendWebRequest());

        MessageResultType messageResultType = MessageResultType.MessageReceived;
        string            message           = "";

        if (request.isNetworkError)
        {
            Log("SQS DELETE Net Error: " + request.error);

            messageResultType = MessageResultType.NetworkError;
            message           = request.error;
        }
        else if (request.isHttpError)
        {
            Log("SQS DELETE Http Error: " + request.error);
            messageResultType = MessageResultType.FailedToClaimMessage;
        }
        else
        {
            if (enableLogging)
            {
                string bodyJsonString = System.Text.Encoding.UTF8.GetString(request.downloadHandler.data);
                Log(bodyJsonString);
            }

            messageResultType = MessageResultType.MessageReceived;

            if (payloadString != null)
            {
                GamePayload gamePayload = JsonUtility.FromJson <GamePayload>(payloadString);

                if (gamePayload != null)
                {
                    message = gamePayload.message;
                }
                else
                {
                    message = payloadString;
                }
            }
        }

        if (mesgRecvCallback != null)
        {
            mesgRecvCallback(messageResultType, message);
        }
    }