我正在为我的iOS应用添加推送通知服务。我知道我可以使用APNS或其他派对,如#34; Pusher"。在这个阶段,我只有应用程序的iOS模型。为什么使用Pusher而不是APNS是有利的?它与交通类型或交通量有关吗?应用程序空闲时是通知警报还是APNS只能在后台发出通知?
答案 0 :(得分:2)
为什么使用Pusher优于APNS是有利的?
当应用程序已经打开时,Pusher在大多数情况下更适用于应用程序内通知。由于Pusher通过WebSocket连接维护与服务器的持久连接,因此传递消息(<250ms)比本机推送通知更快。
使用Pusher,您还可以直接访问应用程序中的消息的有效负载,并且有效负载可以完全自定义。我不确定应用程序是否可以直接访问推送通知中的消息有效负载(我想澄清一下)。
我的个人意见是,使用Pusher触发事件并使用消息有效负载接收事件要比发送推送通知更容易。
使用Pusher,您在服务器上有类似以下的代码:
pusher.trigger('my-channel', 'my-event', {some:'data'});
在客户端上,您的代码类似于:
self.client = [PTPusher pusherWithKey:@"YOUR_APP_KEY" delegate:self];
[self.client connect];
PTPusherChannel *channel = [self.client subscribeToChannelNamed:@"my-channel"];
[channel bindToEventNamed:@"my-event" handleWithBlock:^(PTPusherEvent *channelEvent) {
// channelEvent.data is a NSDictianary of the JSON object received
}];
是否与流量类型或流量有关?
与上述速度优势一样,如果您经常发送数据,您也可以获得Pusher持久WebSocket连接的好处。
在iOS 8及更高版本中,通知的最大有效负载大小为2千字节(source)。 Pusher消息的最大有效负载为10千字节。
应用空闲时是通知提醒还是APNS只能在后台通知?
是
我不能100%确定Pusher是否可以做到这一点(调查待决)。因此,这可能是本机推送通知优于推送器的情况。