簡體   English   中英

我們可以從 iOS 設備向 APNs 發送推送通知嗎?

[英]Can we send push notification to APNs from iOS device?

我想在不使用后端服務器的情況下將推送通知從 iOS 設備發送到另一台 iOS 設備。 iOS 設備是否可以充當服務器並向 APNs 服務器發送推送通知? 提前致謝。

理論上,您可以將 Apple 推送通知從一台設備直接發送到另一台設備。 您所需要的只是應用程序的推送證書、您要向其發送通知的設備的設備令牌,以及與 APNS 服務器建立安全 TLS 連接的代碼。

然而,有幾個實際問題使得使用服務器幾乎是強制性的:

  1. 你需要一個地方,安裝你的應用程序的所有設備的所有設備令牌都將被發送到並保存在其中。最好的地方是服務器。 如果沒有服務器,設備 A 如何將其設備令牌發送給其他想要向其發送推送通知的設備?

  2. Apple 要求您盡可能長時間地保持與 APNS 服務器的連接,並使用相同的連接發送許多通知。 如果您在您的設備上打開到 APNS 服務器的連接,它可能是短暫的(因為設備頻繁切換網絡,並且不會一直保持連接到互聯網)。 因此,如果您嘗試頻繁發送許多通知,並且每次都使用新的 APNS 連接,您可能會被禁止(因為 Apple 會將其視為 DDoS 攻擊)。

  3. 如果您將推送證書存儲在安裝您的應用程序的每個設備中(以允許它直接向其他設備發送推送通知),除了將證書存儲在許多地方的安全問題之外,您還必須發布新版本的每次推送證書到期(每年一次)時,您的應用程序,對於未升級到新版本的用戶,推送通知將停止工作。

試試NWPusher

它有一個用於發送推送的 iOS 框架,並有一個從 iOS 向 iOS 發送推送通知的 iOS 演示應用程序。

您還需要考慮服務器成本(如果您編寫自己的服務器,則維護和開發時間除外)。

通過直接從應用設備發送推送:
- 您獲得了更好的可擴展性(因為您不必將所有內容都集中在您的服務器上)
- 您無需支付服務器費用或其他服務費用

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

對於 Android: - 通過 java 發送推送通知 GCM

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM