首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有版本2的苹果推送通知-限制和问题

带有版本2的苹果推送通知-限制和问题
EN

Stack Overflow用户
提问于 2014-03-04 22:28:14
回答 1查看 815关注 0票数 1

刚开始学习并实现C#中发送推送通知的服务器时,我阅读了以下内容:苹果批量推送通知,我还检查了push和MoonApns项目,以获得代码参考。

两个项目都使用消息的"1“版本。

苹果在这里有新的格式(2):https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/CommunicatingWIthAPS.html

我没有参考v1进行比较,但是通过在线查看,他们似乎增加了一次发送“批处理”消息的能力。所以,我们不必一个一个地发送每个通知,我们可以发送包。

因为这一切都是新的,让我不知所措,我想知道我是否应该尝试和v2打交道?

  1. 看到ItemId是一个字节-我们不能在一批中发送超过256个消息,对吗?ItemId的好处是什么?应该从1开始吗?他们应该增加吗?
  2. 如果我得到了错误,它将指定NotificationIdentifier,如果我发送了100条消息,并且消息50作为错误返回,它是否同样工作。我应该怨恨剩下的50人?还是整批?

我想问题是为什么?为什么是这种新的格式?为了获得更好的多条消息的性能?我认为,即使我不用等待作为v1而转储消息,对于我们的使用也是足够的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-04 23:49:05

  1. ItemId不是通知的标识符。它标识项目的类型(1用于设备令牌,2用于有效负载,3用于通知标识符,4用于过期数据,5用于优先级)。因此,它对一个批处理中发送的消息数量没有影响。
  2. 如果消息50有错误,则必须重新发送消息51-100。

我没有尝试使用这种新的格式,我也不知道它有什么好处。它添加了通知优先级,该优先级不存在于以前的格式中,但是如果不需要通知优先级,则可以保留格式1。

顺便说一句,从当前的文档来看,还不清楚如何使用新的格式对通知进行批处理。

单个帧必须包含(至少)单个通知的所有项(即设备令牌、有效负载、消息ID、过期和优先级),除非其中一些项是可选的(文档中没有指定)。

但是,如果在帧中只包含一个通知,则不会对任何信息进行批处理。如果试图在单个帧中包含多个通知,则不清楚如何解释该框架。需要为每个项目指定项目类型,这意味着项目的顺序并不重要(与其所使用的格式0和1不同)。因此,例如,如果您决定对同一帧中的两个通知进行批处理,那么在同一帧中将有两个通知in和两个设备令牌。在这种情况下,不清楚哪个设备令牌与哪个通知ID相关(除非订单确实重要)。也许该格式是一种中间格式,稍后将被扩展为允许向多个设备令牌发送单个有效负载(这将允许您为多个设备令牌指定一次有效负载)。那会很有用的。

格式0和1是指定的这里

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22184513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档