示例#1
0
 private static void Initialize()
 {
     // Nur einmal für die Webseiten dieser Web App Instanz einen FeedbackReceiver anlegen und ReceiveFeedbackAsync aufrufen  (wird erkannt, wenn er noch null ist)
     if (feedbackReceiver == null)
     {
         // Start receiving feedbacks
         feedbackReceiver = serviceClient.GetFeedbackReceiver();
         ReceiveFeedbackAsync();
     }
 }
        public async Task ListenForCloud2DeviceCommandFeedback()
        {
            FeedbackReceiver <FeedbackBatch> feedbackReceiver = _serviceClient.GetFeedbackReceiver();
            FeedbackBatch feedbackBatch = await feedbackReceiver.ReceiveAsync(TimeSpan.FromSeconds(5));

            if (feedbackBatch == null)
            {
                return;
            }

            OnCloud2DeviceCommandFeedback?.Invoke(this, new Cloud2DeviceCommandFeedbackEventArgs($"{String.Join("\n", feedbackBatch.Records.Select(item => item.StatusCode).ToArray())}"));

            await feedbackReceiver.CompleteAsync(feedbackBatch);
        }
示例#3
0
        public static async Task receiveMessageFeedback(int listenFor = 100)
        {
            FeedbackReceiver <FeedbackBatch> feedbackReceiver = serviceClient.GetFeedbackReceiver();
            FeedbackBatch feedback = await feedbackReceiver.ReceiveAsync(TimeSpan.FromSeconds(listenFor)).ConfigureAwait(false);

            if (feedback != null)
            {
                Console.WriteLine(
                    "IotHub has received a message {0}",
                    string.Join(", ", feedback.Records)
                    );
            }
            else
            {
                Console.WriteLine("IotHub has not received any messages");
            }
        }
示例#4
0
        public async Task ReceiveFeedback(CancellationToken cancellationToken)
        {
            feedbackReceiver = this.client.GetFeedbackReceiver();

            while (!cancellationToken.IsCancellationRequested)
            {
                var feedbackBatch = await feedbackReceiver.ReceiveAsync();

                if (feedbackBatch != null)
                {
                    foreach (var record in feedbackBatch.Records)
                    {
                        Feedback.Enqueue(record);
                    }

                    await feedbackReceiver.CompleteAsync(feedbackBatch);
                }
            }
        }
示例#5
0
        private static async Task ReceiveFeedback(ServiceClient serviceClient)
        {
            FeedbackReceiver <FeedbackBatch> feedbackReceiver = serviceClient.GetFeedbackReceiver();

            while (true)
            {
                FeedbackBatch feedbackBatch = await feedbackReceiver.ReceiveAsync();

                if (feedbackBatch == null)
                {
                    continue;
                }

                foreach (FeedbackRecord record in feedbackBatch.Records)
                {
                    string             messageId  = record.OriginalMessageId;
                    FeedbackStatusCode statusCode = record.StatusCode;

                    Console.WriteLine($"Feedback for message '{messageId}', status code: {statusCode}");
                }

                await feedbackReceiver.CompleteAsync(feedbackBatch);
            }
        }
示例#6
0
 void Awake()
 {
     feedbackReceiver = new FeedbackReceiver(this);
 }