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); } }
public void SendSQSMessage(string message) { GamePayload payload = new GamePayload(); payload.message = message; StartCoroutine(SQSMessagePostAsync(payload)); }
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); } }