2015-07-13 78 views
0

我想知道如何使用Google Cloud Messaging發送推送通知到我的Android應用程序。如何使用GCM和Google App Engine發出推送通知

我在Google Cloud SQL上有一個MySQL數據庫,具有用於與該MySQL數據庫交互的Cloud Endpoints API(插入,更新等)。

現在,我想創建一個名爲「信息表中我的MySQL數據庫,只要有插入有新的消息,我希望我的Android應用程序通過GCM被告知這一點。

我知道我需要一個BroadcastReceiver來監聽推送通知,但我不確定我應該執行哪個代碼來發送GCM的推送通知(在我的Cloud Endpoint中?),我也不知道GCM如何知道我的消息表已更新爲新行。

有人可以幫助我理解這個中間步驟或指向某些教程的正確方向嗎?

回答

0

如果您正在尋找一個快速解決方案,它不會發生,因爲這是一個不平凡的問題。根據所使用的框架,初始信令本身很容易。例如,在Django中,我使用信號,以便在將模型保存到DB時,保存後信號可以發送GCM消息。

0

當您將消息記錄寫入數據庫時​​,最好的辦法是將任務添加到推送隊列中。任務可以在運行時找到該消息的所有必需收件人,並將GCM消息發送給每個收件人。

這使您可以調節油門消息並從請求中卸載部分工作。


編輯爲清楚:

  1. 雲終端處理程序寫入到您的數據庫事務
  2. 雲終端處理程序中 同一事務提出一個任務在任務隊列(推送隊列)內
  3. 雲端點返回
  4. 推隊列任務異步執行另一個處理程序
  5. 任務處理程序發現消息接收者(DB查詢或類似)
  6. 任務處理程序使用有效載荷從這個DB

優點發送GCM消息發送到每個接收方有:

  • 即該消息保存和創建任務是事務性的,如果其中一個失敗,您可以重試或將錯誤發送回客戶端
  • 雲端點調用無需等待GCM RPC完成(即其更快)
  • 如果因任何原因GCM任務處理失敗,將重試基於推隊列規則
  • 可以使用隊列配置
  • 獨立控制GCM消息的速度可以卸載GCM消息和相關的處理到不同的模塊或後端,並有不同的消費配置文件到您的REST前端。
+0

因此,我會將我的Cloud Endpoints方法寫入數據庫,然後還會向任何設備發送推送通知消息用於? – Micro