通知集线器缓存Toast通知

时间:2016-05-27 20:21:15

标签: azure caching push-notification notifications azure-notificationhub

我想要实现一种确保用户接收通知的方法,例如Azure NotificationHub - Detect failed notifications

然而,当许多人订阅了一个标签时,这个成功有限,然后结束了大量的服务器时间。

相反,我找到了这个链接caching Notifications。它明确指出不能缓存Toast通知。不过,自从我使用通知中心升级到Azure应用服务后,我已经测试了事实上缓存的吐司通知。

但是我找不到任何关于Toasts的缓存文档,或者如何确保缓存或缓存了多少通知,最后还有多长时间?

因此,我想知道是否有人知道缓存及其如何指定?上面链接中的示例:

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

但这是如何指定的?

更新

关于启用缓存,答案是正确的。尽管如此,我仍然不清楚Notifications are cached多长时间,链接说通知在合理的时间后被删除了,这是什么?

此外,未指定存储了多少通知,一个属性称为链接的循环,这样如果新消息使用相同的标记进行高速缓存,则将采用旧消息。但是没有提到可以存储多少个不同的标签,也没有提到如何启用或禁用循环?

最后,每个频道/用户可以缓存多少条消息?

1 个答案:

答案 0 :(得分:2)

Azure通知中心未将此标头设置为默认值。根据WNS文档,默认情况下启用缓存。

根据WNS文档,当设备离线时,默认情况下,WNS将存储最多五个磁贴通知(如果启用了排队;否则,一个磁贴通知)和每个通道URI的一个徽章通知,并且没有原始通知。可以通过X-WNS-Cache-Policy标头更改此默认缓存行为。请注意,当设备离线时,永远不会存储Toast通知。

要明确设置此标头,您可以使用Notification Hub SendNotificationAsync API发送通知。 示例:

字典wnsHeaders = new Dictionary();

wnsHeaders.Add(“X-WNS-Cache-Policy”,“cache”);

WindowsNotification notification = new WindowsNotification(“payload”,wnsHeaders);

等待客户。 SendNotificationAsync(通知);