为什么 APNS 只传送最后排队的通知,而不是所有排队的通知?



问题陈述:我正在使用VoIP通知来显示本地通知。我正在尝试将通知从 Apns 发送到脱机设备。因此,它将所有待处理的通知排队。但是,它仅在设备成为 在线。

根据苹果文档链接

服务质量、存储转发和合并通知

Apple 推送通知服务包括服务质量 (QoS) 执行存储转发功能的组件。如果 APNs 尝试 要发送通知且目标设备处于脱机状态,APNs 将通知存储有限的时间并传递 当设备再次可用时。此组件仅存储 每个设备和每个应用的最新通知。如果设备是 脱机,发送针对该设备导致的通知请求 要丢弃的上一个请求。如果设备在 很长一段时间,APN中存储的所有通知都会被丢弃。

要允许合并类似的通知,您可以包含 折叠通知请求中的标识符。通常,当 设备处于联机状态,您发送给 APNs 的每个通知请求 导致通知传递到设备。但是,当 apns-collapse-id 密钥存在于您的 HTTP/2 请求标头中,APNs 合并该键的值相同的请求。例如 两次发送相同标题的新闻服务可以使用相同的标题 折叠两个请求的标识符值。然后,APN将合并 将两个请求合并为一个通知,以便传递到 装置。

最新更新