2015-07-13 56 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