我想要实现一种确保用户接收通知的方法,例如Azure NotificationHub - Detect failed notifications
然而,当许多人订阅了一个标签时,这个成功有限,然后结束了大量的服务器时间。
相反,我找到了这个链接caching Notifications。它明确指出不能缓存Toast通知。不过,自从我使用通知中心升级到Azure应用服务后,我已经测试了事实上缓存的吐司通知。
但是我找不到任何关于Toasts的缓存文档,或者如何确保缓存或缓存了多少通知,最后还有多长时间?
因此,我想知道是否有人知道缓存及其如何指定?上面链接中的示例:
X-WNS-Cache-Policy: cache | no-cache
但这是如何指定的?
更新
关于启用缓存,答案是正确的。尽管如此,我仍然不清楚Notifications are cached多长时间,链接说通知在合理的时间后被删除了,这是什么?
此外,未指定存储了多少通知,一个属性称为链接的循环,这样如果新消息使用相同的标记进行高速缓存,则将采用旧消息。但是没有提到可以存储多少个不同的标签,也没有提到如何启用或禁用循环?
最后,每个频道/用户可以缓存多少条消息?
答案 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(通知);