刚开始学习并实现C#中发送推送通知的服务器时,我阅读了以下内容:苹果批量推送通知,我还检查了push和MoonApns项目,以获得代码参考。
两个项目都使用消息的"1“版本。
我没有参考v1进行比较,但是通过在线查看,他们似乎增加了一次发送“批处理”消息的能力。所以,我们不必一个一个地发送每个通知,我们可以发送包。
因为这一切都是新的,让我不知所措,我想知道我是否应该尝试和v2打交道?
我想问题是为什么?为什么是这种新的格式?为了获得更好的多条消息的性能?我认为,即使我不用等待作为v1而转储消息,对于我们的使用也是足够的。
发布于 2014-03-04 23:49:05
ItemId不是通知的标识符。它标识项目的类型(1用于设备令牌,2用于有效负载,3用于通知标识符,4用于过期数据,5用于优先级)。因此,它对一个批处理中发送的消息数量没有影响。我没有尝试使用这种新的格式,我也不知道它有什么好处。它添加了通知优先级,该优先级不存在于以前的格式中,但是如果不需要通知优先级,则可以保留格式1。
顺便说一句,从当前的文档来看,还不清楚如何使用新的格式对通知进行批处理。
单个帧必须包含(至少)单个通知的所有项(即设备令牌、有效负载、消息ID、过期和优先级),除非其中一些项是可选的(文档中没有指定)。
但是,如果在帧中只包含一个通知,则不会对任何信息进行批处理。如果试图在单个帧中包含多个通知,则不清楚如何解释该框架。需要为每个项目指定项目类型,这意味着项目的顺序并不重要(与其所使用的格式0和1不同)。因此,例如,如果您决定对同一帧中的两个通知进行批处理,那么在同一帧中将有两个通知in和两个设备令牌。在这种情况下,不清楚哪个设备令牌与哪个通知ID相关(除非订单确实重要)。也许该格式是一种中间格式,稍后将被扩展为允许向多个设备令牌发送单个有效负载(这将允许您为多个设备令牌指定一次有效负载)。那会很有用的。
格式0和1是指定的这里。
https://stackoverflow.com/questions/22184513
复制相似问题