我想要实现一种确保用户接收通知的方法,例如
Azure NotificationHub – Detect failed notifications
然而,当有许多订阅标签时,这取得了有限的成功,然后结束了大量的服务器时间.
相反,我发现此链接caching Notifications.它明确指出无法缓存Toast通知.然而,自从我使用Notification Hub升级到Azure App Service后,我测试了事实上缓存的Toast通知.
但是我找不到任何关于Toasts的缓存文档,或者如何确保缓存或可以缓存多少通知,最后多久?
因此,我想知道是否有人知道缓存以及如何指定缓存?上面的链接示例:
X-WNS-Cache-Policy:缓存|无缓存
但这是如何规定的?
更新
答案在启用缓存方面是正确的.尽管如此,我仍然不清楚Notifications are cached多长时间,该链接表示在一段合理的时间后通知被删除,这是什么?
此外,未指定存储了多少通知,一个属性被称为链接的循环,这样如果新消息被缓存为具有相同标记,则将采用旧消息位置.但是没有提到可以存储多少个不同的标签,也没有提到如何启用或禁用循环?
最后,每个频道/用户可以缓存多少条消息?
最佳答案 Azure Notification Hub未将此标头设置为默认值.根据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(通知);