4

私は、ユーザーが通知を受け取る方法を実装したいと考えました。 Azure NotificationHub - Detect failed notificationsToast通知の通知ハブキャッシュ

しかし、これはタグを多数購読していて、多くのサーバー時間で終了したときには限定された成功しか収めませんでした。

代わりにこのリンクが見つかりましたcaching Notifications特に、トースト通知をキャッシュすることはできません。それでも、通知ハブを使用してAzure Appサービスにアップグレードして以来、私はトースト通知が実際にキャッシュされていることをテストしました。

しかし、トーストやキャッシングの保証方法やキャッシュすることができる通知の数、最後にどれくらいの期間、キャッシングのドキュメントが見つかりませんか?

したがって、誰かがキャッシュに関する知識を持っていて、これがどのように指定されているか知りたいですか?上記のリンクから例:

X-WNS-Cache-Policy: cache | no-cache

は、しかし、どのようにこれが指定されていますか?

更新

答えは、キャッシュを有効にする点では正しいです。それにもかかわらず、それでも私にはまだ分かりませんNotifications are cached、リンクは通知が合理的な時間の後に落とされると言います、それは何ですか?

さらに、いくつの通知が保存されているかは指定されていません。新しいメッセージが同じタグでキャッシュされている場合は古いメッセージの場所になるなど、1つの属性はリンクのサイクリングと呼ばれます。しかし、どのように多くの異なるタグを格納することができますが記載されていないか、またはサイクリングを有効または無効にする方法も記載されていません?

最後に、チャネル/ユーザごとにキャッシュできるメッセージの数はいくつですか?

答えて

2

Azure Notification Hubは、このヘッダーのデフォルトを設定しません。 WNSのドキュメントに基づいて、デフォルトでキャッシュが有効になっています。

デバイスがオフラインの場合、デフォルトでWNSは最大5つのタイル通知(キューイングが有効な場合、それ以外の場合は1つのタイル通知)と各チャネルURIのバッジ通知を1つ保存し、未処理の通知は保存しません。このデフォルトのキャッシュ動作は、X-WNS-Cache-Policyヘッダーによって変更できます。トースト通知は、デバイスがオフラインのときは決して格納されません。

このヘッダーを明示的に設定するには、Notification Hub SendNotificationAsync APIを使用して通知を送信します。 例:

辞書wnsHeaders = new Dictionary();

wnsHeaders.Add( "X-WNS-Cache-Policy"、 "cache");

WindowsNotification通知=新しいWindowsNotification( "payload"、wnsHeaders);

awaitクライアント。 SendNotificationAsync(通知)。

+0

これはキャッシュされています。どれくらいの数を教えていただけますか?どれだけの時間?そして、その特定のユーザ/チャンネルのためにどれくらいのメッセージが既にキャッシュされているのかを知ることができますか? – JTIM

+0

xmlバージョンでヘッダを追加する方法を知っていますか?私の通知はこのフォーマットで作成されます<?xml version = \ "1.0 \" encoding = \ "utf-8 \"?> – JTIM