首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用GCM和Google App Engine发布推送通知

如何使用GCM和Google App Engine发布推送通知
EN

Stack Overflow用户
提问于 2015-07-13 11:02:23
回答 2查看 200关注 0票数 0

我正在尝试弄清楚如何使用Google Cloud Messaging向我的Android应用程序发出推送通知。

我在Google Cloud SQL上有一个MySQL数据库,其中包含一个Cloud Endpoints API,用于与该MySQL数据库进行交互(插入、更新等)。

现在,我想在我的MySQL数据库中创建一个名为“messages”的表,每当有新的消息插入到其中时,我希望通过GCM通知我的Android应用程序。

我知道我需要一个BroadcastReceiver来侦听传入的推送通知,但我不确定我应该在哪里执行代码来发送推送通知(在我的云端点中?)我也不知道GCM如何知道我的messages表已经用新行更新了。

有没有人能帮我理解这个中间步骤,或者给我指出一些教程的正确方向?

EN

回答 2

Stack Overflow用户

发布于 2015-07-13 13:43:13

如果您正在寻找解决此问题的快速方法,则不会发生这种情况,因为这不是一个微不足道的问题。初始信号本身很容易,这取决于所使用的框架。例如,在django中,我使用信号,以便在将模型保存到DB时,保存后的信号可以发送GCM消息。

票数 0
EN

Stack Overflow用户

发布于 2015-07-14 06:08:09

最好的办法是在将消息记录写入数据库时将任务添加到推送队列中。任务可以在运行时找到该消息的所有必需收件人,并将GCM消息发送给每个收件人。

这允许您对消息传递进行分级,并从请求中卸载一些工作。

为清晰起见进行编辑:

  1. 云端点处理程序在事务内写入您的数据库
  2. 云端点处理程序将任务放在同一transaction
  3. Cloud端点内的任务队列(推送队列)上返回
  4. 推送队列任务在另一个处理程序上异步执行
  5. 任务处理程序查找消息收件人(数据库查询或GCM处理程序使用DB

的有效负载将GCM消息发送给每个收件人

这样做的好处是:

  • 消息保存和任务创建是事务性的,如果其中任何一个失败,您可以重试或将错误发送回客户端
  • 云端点调用不需要等待GCM RPC完成(即更快)
  • 如果GCM任务处理因任何原因失败,它将根据推送队列规则进行重试
  • 您可以使用队列configuration
  • You独立控制GCM消息传递的速率可以将GCM消息传递和相关处理卸载到不同的模块或后端,并具有与REST前端不同的消耗配置文件。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31374838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档