理论上,你可以直接从一个设备向另一个设备发送Apple推送通知。你所需要的是应用的推送证书、要发送通知的设备的设备令牌以及建立安全的TLS连接到APNS服务器的代码。然而,有几个实际问题使得使用服务器几乎成为必须: 你需要一个唯一的地方,将所有已安装你的应用的设备的设备令牌发送并持久化。最好的位置是服务器。没有服务器,设备A如何将其设备令牌发送给其他想要向它发送推送通知的设备呢? 苹果要求您尽可能长时间保持与APNS服务器的连接,并使用同一连接发送许多通知。如果你在设备上打开一个连接到APNS服务器,它可能很短暂(因为设备经常切换网络,并且不会一直连接到互联网)。因此,如果您频繁地尝试发送许多通知,并且每次都使用新连接到APNS,您可能会被禁止(因为苹果会将此视为DDoS攻击)。 如果你在每个安装你的应用的设备中存储推送证书(以允许它直接向其他设备发送推送通知),除了在许多位置存储证书的安全问题外,你每年需要发布新版本的应用程序(一次)以更新推送证书,对于不升级到新版本的用户,推送通知将停止工作。
您还需要考虑服务器成本(除非您编写自己的服务器,否则除了维护和开发时间之外)。通过直接从应用程序设备发送推送: - 您可以获得更好的可扩展性(因为您不必将所有内容集中在您的服务器上) - 您不必支付服务器成本或其他服务成本您可以使用以下工具: - iOS:https://github.com/noodlewerk/NWPusher Pusher - Android:Send push notification GCM by java