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

我想从iOS设备发送推送通知到另一个iOS设备,而不使用后端服务器。 iOS设备是否可以像服务器一样工作,并向APNs服务器发送推送通知? 提前致谢。

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

但是,有几个实际问题使得使用服务器几乎是必须的:

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

  2. Apple要求您尽可能保持与APNS服务器的连接处于打开状态,并使用相同的连接发送多个通知。 如果您在设备上打开与APNS服务器的连接,则该连接可能会短暂(因为设备频繁切换networking,并且不会始终保持与Internet的连接)。 因此,如果您尝试频繁地发送很多通知,并且每次使用新的连接到APNS,您可能会被禁止(因为苹果会将其视为DDoS攻击)。

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

尝试NWPusher 。

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

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

通过直接从应用程序设备发送推送:
– 您获得更好的可扩展性(因为您不必集中服务器上的所有内容)
– 您不必支付服务器成本或其他服务的成本

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

对于Android: – 通过Java发送推送通知GCM