通知中心的烤面包通知缓存

4

我一直想实现一种确保用户接收通知的方式,例如Azure NotificationHub - 检测失败通知。但是当订阅标签的人很多时,这种方法的成功率有限,最终会导致服务器时间的大量消耗。

相反,我找到了这个链接缓存通知。它明确指出toast通知无法缓存。然而,自从我升级到使用Notification Hub的Azure应用程序服务以来,我已经测试了toast通知实际上是被缓存的。

然而,我找不到任何关于Toast缓存的文档,也不知道如何确保缓存的数量以及缓存的时间长度是多少?

因此,我想知道是否有人了解缓存的相关知识以及如何指定缓存?例如来自上面链接的示例:

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

但是如何指定?

更新

关于启用缓存的答案是正确的。然而,对于我来说还不清楚通知的缓存时间有多长,该链接表示通知将在合理的时间内被删除,那是多久?

此外,没有指定可以存储多少通知,链接中提到了一个属性称为“循环”,如果使用相同的标签缓存新消息,则会替换旧消息。但是可以存储多少不同的标签未被提及,并且如何启用或禁用循环也未提及?

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

1个回答

2
Azure通知中心默认不设置此标头。 根据WNS文档,默认情况下启用缓存。
根据WNS文档,在设备离线时,默认情况下,如果启用排队,则WNS将为每个通道URI存储最多五个平铺通知(否则为一个平铺通知)和一个徽章通知,不存储原始通知。 可以通过X-WNS-Cache-Policy标头更改此默认缓存行为。 请注意,设备离线时永远不会存储Toast通知。
要显式设置此标头,您可以使用Notification Hub SendNotificationAsync API发送通知。 示例: Dictionary wnsHeaders = new Dictionary();
wnsHeaders.Add("X-WNS-Cache-Policy", “cache” );
WindowsNotification notification = new WindowsNotification(“payload”, wnsHeaders);
await client. SendNotificationAsync (notification);

好的,有趣的是它被缓存了。你能说一下大概有多少条信息被缓存了吗?缓存了多长时间?你能看到有多少条信息已经被缓存到了特定的用户/频道吗? - JTIM
你知道如何在XML版本中添加头部吗?我的通知是以以下格式创建的:<?xml version=\"1.0\" encoding=\"utf-8\"?> 我该如何包含头部? - JTIM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接