我想在不使用后端服务器的情况下从iOS设备向其他iOS设备发送推送通知。 iOS设备是否可以像服务器一样运行并向APNs服务器发送推送通知? 提前谢谢。
答案 0 :(得分:4)
理论上,您可以将Apple推送通知从设备直接发送到其他设备。您所需要的只是应用程序的推送证书,您要向其发送通知的设备的设备令牌,以及与APNS服务器建立安全TLS连接的代码。
但是,有几个实际问题使得服务器的使用几乎是强制性的:
您需要一个地方,安装您应用的所有设备的所有设备令牌都将被发送并保留。最好的地方是服务器。如果没有服务器,设备A如何将设备令牌发送给想要发送推送通知的其他设备?
Apple要求您尽可能长时间地保持与APNS服务器的连接,并使用相同的连接发送许多通知。如果您在设备上打开与APNS服务器的连接,它可能会很短暂(因为设备经常切换网络,并且不会一直保持与互联网的连接)。因此,如果您尝试频繁发送许多通知,并且每次使用与APNS的新连接,您可能会被禁止(因为Apple会将此视为DDoS攻击)。
如果您将推送证书存储在安装您的应用程序的每个设备中(以允许它直接向其他设备发送推送通知),除了存储证书的安全问题很多地方,您可以每次推送证书过期(每年一次)时,都必须发布新版本的应用程序,推送通知将停止为不升级到新版本的用户工作。
答案 1 :(得分:2)
尝试NWPusher。
它有一个用于发送推送的iOS框架,并有一个iOS演示应用程序,可以将推送通知从iOS发送到iOS。
答案 2 :(得分:2)
您还需要考虑服务器成本(如果您编写自己的服务器,则需要考虑维护和开发时间)。
直接从应用设备发送推送:
- 您获得了更好的可扩展性(因为您不必集中服务器上的所有内容)
- 您无需支付服务器费用或其他服务费用
您可以使用iOS: - https://github.com/noodlewerk/NWPusher Pusher
对于Android: - Send push notification GCM by java