2016-06-14 35 views
1

我即將在我的應用程序中實現GCM,但我無法在文檔中找到以下問題的答案:使用GCM進行時間關鍵型操作?

我的應用程序需要對服務器中的更改進行重要的時間交付。

  • 即使設備正在睡眠,GCM是否會立即發送通知(無延遲)?

    • 通知會立即喚醒設備嗎?
  • 會有2-3個,每秒最多20個通知,這會導致問題嗎?

  • 服務滿足這些要求會不會有成本?

+0

[我並不是當前技術的專家,但是......]關鍵問題是您每天要發送多少通知**?如果答案是「超過100」,或者現在可能「超過1000」,請考慮僅使用偶爾的高優先級推送消息來喚醒應用程序,然後讓它在上次接收更新的時間後向服務器詢問所有更新,並讓您的服務器將所有這些信息打包成某種類型的單個數據包。也就是說,你可能會試圖做一些推送通知無效的事情;不要通過推動來完成。並查看Firebase FCM的推送。 – ToolmakerSteve

+0

...具體來說,考慮到很多通知,我假設你正在討論向手機發送**數據** - 這些不是用戶需要看到的通知(因爲這將是壓倒性數字)。 – ToolmakerSteve

回答

2

即使設備正在睡眠,GCM是否會立即發送通知(無延遲)?

是的,您可以將郵件的優先級設置爲High priority

GCM嘗試立即發送high priority消息,允許GCM服務在可能的情況下爲wake a sleeping device,並打開到應用服務器的網絡連接。例如,即時消息,聊天或語音呼叫警報的應用程序通常需要打開網絡連接,並確保GCM毫不拖延地將消息傳遞到設備。只有在消息時間緊迫且需要用戶直接交互的情況下設置high priority,並且請注意,與正常優先級消息相比,將消息設置爲high priority會造成更多電量消耗。

通知會立即喚醒設備嗎?

它在上面:)

的描述得到答覆將有大約2-3,每秒高達20個通知,這會導致一個問題?

我認爲這個SO問題可以幫助你解決這個問題。

會在那裏這些要求的任何服務費用是多少?

Google Cloud Messaging: Overview

谷歌雲端通訊(GCM)是免費服務,允許開發人員服務器和客戶端應用程序之間發送消息。這包括從服務器到客戶端應用程序的下游消息以及從客戶端應用程序到服務器的上游消息。

只要注意,Firebase Cloud Messaging (FCM)是新的 版本的GCM。它繼承了可靠和可擴展的GCM 基礎架構以及新功能!如果您在 正在將消息集成到新應用程序中,請從FCM開始。 GCM用戶 強烈建議升級到FCM,以便從現在和未來的新的 FCM功能中受益。

+0

「儘可能喚醒睡眠裝置」..「如果可能」 - 這是完全不清楚的部分。請解釋一下。 關於第二個問題 - 每1個設備計數。 –

+0

plus - 似乎它實際上不是免費的東西:https://firebase.google.com/pricing/ –

+0

價格表是針對Firebase或FCM而非GCM的, – KENdi

1

其實,GCM不建議在所有的時間關鍵業務,由於其可靠性問題[1][2][3]。通知可能會延遲,速度有限,在傳輸中丟失,或以不同於它們發送的順序到達。

您可以使用替代的推送通知網關,這對您的時間關鍵型操作需求來說更可靠。

Pushy(https://pushy.me/)使用自己的後臺MQTT連接爲獨立於GCM的Android應用程序提供高度可靠的推送通知網關。

完全披露:我創立了Pushy。

相關問題