我们可以从iOS设备向APN发送推送通知吗?

时间:2014-06-26 09:57:21

标签: ios push-notification apple-push-notifications

我想在不使用后端服务器的情况下从iOS设备向其他iOS设备发送推送通知。 iOS设备是否可以像服务器一样运行并向APNs服务器发送推送通知? 提前谢谢。

3 个答案:

答案 0 :(得分:4)

理论上,您可以将Apple推送通知从设备直接发送到其他设备。您所需要的只是应用程序的推送证书,您要向其发送通知的设备的设备令牌,以及与APNS服务器建立安全TLS连接的代码。

但是,有几个实际问题使得服务器的使用几乎是强制性的:

  1. 您需要一个地方,安装您应用的所有设备的所有设备令牌都将被发送并保留。最好的地方是服务器。如果没有服务器,设备A如何将设备令牌发送给想要发送推送通知的其他设备?

  2. Apple要求您尽可能长时间地保持与APNS服务器的连接,并使用相同的连接发送许多通知。如果您在设备上打开与APNS服务器的连接,它可能会很短暂(因为设备经常切换网络,并且不会一直保持与互联网的连接)。因此,如果您尝试频繁发送许多通知,并且每次使用与APNS的新连接,您可能会被禁止(因为Apple会将此视为DDoS攻击)。

  3. 如果您将推送证书存储在安装您的应用程序的每个设备中(以允许它直接向其他设备发送推送通知),除了存储证书的安全问题很多地方,您可以每次推送证书过期(每年一次)时,都必须发布新版本的应用程序,推送通知将停止为不升级到新版本的用户工作。

答案 1 :(得分:2)

尝试NWPusher

它有一个用于发送推送的iOS框架,并有一个iOS演示应用程序,可以将推送通知从iOS发送到iOS。

答案 2 :(得分:2)

您还需要考虑服务器成本(如果您编写自己的服务器,则需要考虑维护和开发时间)。

直接从应用设备发送推送:
- 您获得了更好的可扩展性(因为您不必集中服务器上的所有内容)
- 您无需支付服务器费用或其他服务费用

您可以使用iOS: - https://github.com/noodlewerk/NWPusher Pusher

对于Android: - Send push notification GCM by java