2016-11-21 11 views
0

私たちのアプリにプッシュ通知を設定しています。私たちは今、どのユーザーに送信するかを決定し、それを前記のユーザーに送信するコンソールアプリケーションを作成しています。現時点でわからないことは、それぞれが完了した時点をどのように知っているかです。または完了していない?マイクロソフトから提供された多くのドキュメントはありません(そこには大きな驚きがあります)。そこに書かれているドキュメントは、実際のレスポンスの読み方を説明していません。Azure Notification Hub数千の通知を送信し、それぞれから結果を返す

たとえば、一度に何千人ものユーザーが通知を受け取る可能性があるため、実装する必要があると思われる例のスニペットが表示されます。

public async Task GenerateNotifications() 
{ 
NotificationHubClient hub =   NotificationHubClient.CreateClientFromConnectionString(AppHelper.AzureNotificationHubConnectionString, "myhub"); 

List<Task<NotificationOutcome>> notificaitonTasks = new List<Task<NotificationOutcome>>(); 

for (int i = 0; i < 10; i++) 
{ 
    var notification = new 
    { 
     aps = new 
     { 
      alert = string.Format("Awesome Notification {0}", i), 
      sound = "default" 
     } 
    }; 

    string notificationJSON = JsonConvert.SerializeObject(notification); 
    notificaitonTasks.Add(hub.SendAppleNativeNotificationAsync(notificationJSON, "mytag")); 
} 

await Task.WhenAll(notificaitonTasks); 

}

これは私たちに理にかなって、私たちはparralelスレッド上のすべてのタスクを実行するためにWhenAllメソッドを使用します。しかし、それから実行される各タスクで何が起こるかを知る方法はありますか?たとえば、ContinueWithメソッドは私たちが欲しいものをやっているようですが、と思っています。これはすべてのタスクが完了した後にのみ実行され、各タスクの後には実行されません。

したがって、WhenAllコールの各応答を読み取る方法はありますか?もしそうでなければ、私たちがやろうとしていることをするための良い方法がありますか?私は必要な他の情報を提供します、ちょうだいてください。

答えて

0

メッセージごとのテレメトリ機能を使用して、送信された各通知の結果を取得できます。ただし、これを行うには標準層にアップグレードする必要があります。側ではリンク Per Message Telemetry Per Message Telemetry Blog

を参照してくださいリンクEnableTestSend propertyに示すように、あなたは(デバッグのための検索が通知を失敗しました)EnableTestSendプロパティを使用してプロパティNotificationOutcome.Result使用することができます注意してください。これにより、あなたの状態に合った10のデバイスに通知が送信されます。これは主にデバッグ目的に使用されます

関連する問題