何时不在IOS应用程序中使用APNS?

时间:2015-02-25 04:54:23

标签: ios notifications push pusher

我正在为我的iOS应用添加推送通知服务。我知道我可以使用APNS或其他派对,如#34; Pusher"。在这个阶段,我只有应用程序的iOS模型。为什么使用Pusher而不是APNS是有利的?它与交通类型或交通量有关吗?应用程序空闲时是通知警报还是APNS只能在后台发出通知?

1 个答案:

答案 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是否可以做到这一点(调查待决)。因此,这可能是本机推送通知优于推送器的情况。