コード例 #1
0
    IEnumerator RepeatRetrieveMessage(float waitTime)
    {
        bool checkSQS = true;

        while (checkSQS)
        {
            yield return(new WaitForSeconds(waitTime));

            if (!string.IsNullOrEmpty(queueUrl))
            {
                SqsClient.ReceiveMessageAsync(queueUrl, (result) => {
                    if (result.Exception == null)
                    {
                        //Read the message
                        var messages = result.Response.Messages;
                        messages.ForEach(m => {
                            RemoteCommand command = RemoteCommand.CreateFromJSON(m.Body);
                            Debug.Log(@"Target " + command.target);
                            int index = Int32.Parse(command.target);
                            activateCam(index);
                            Debug.Log(@"Done switching camera");

                            //Delete the message
                            var delRequest = new Amazon.SQS.Model.DeleteMessageRequest {
                                QueueUrl      = queueUrl,
                                ReceiptHandle = m.ReceiptHandle
                            };

                            SqsClient.DeleteMessageAsync(delRequest, (delResult) => {
                                if (delResult.Exception == null)
                                {
                                }
                                else
                                {
                                }
                            });


                            Debug.Log(@"Done processing message ");
                        });
                    }
                    else
                    {
                        Debug.Log(result.Exception);
                        Debug.LogException(result.Exception);
                    }
                });
            }
            else
            {
                Debug.Log(@"Queue Url is empty, make sure that the queue is created first");
            }
        }
    }