php - 社交 Android 应用程序的通知系统 - 推送与轮询以及如何制作服务器 "Push"

标签 php android push-notification server-side google-cloud-messaging

对于那些只想切入正题并知道我在问什么的人。我的问题在下面的段落中进行了编号和加粗。

我费了好大劲想弄清楚1.)如何为 Android 社​​交网络应用程序实现适当的通知系统?到目前为止,我收集到的所有信息是有 2 个选择, polling vs. pushing,pushing 比 polling 更好,因为它可以节省电量,推荐的通知推送方式是通过 Google Cloud Messaging(GCM),但我没有得到的是 2.) 是什么让我的服务器推送? 和/或 3.) 如何设置我的服务器端以在有新数据可用时推送? 进一步的研究表明 Facebook 只能实现其近乎实时的通知系统 bc他们有某种服务器端 api/library/technology,称为 thrift 或类似的东西,可以检测谁在线和谁不在线(还不确定为什么这很重要)。 4.)有没有人给我一些建议,他们曾尝试实现类似于 Facebook 的社交通知系统?

其他重要信息:

  • 我目前正在为 api(PHP) 使用 Codeigniter Rest 服务器

  • 我更喜欢可以使用我现有的 API 实现的 php 解决方案,除非有另一种语言(Java、Ruby、Javascript)可以独立实现的解决方案(也就是我仍然可以使用我现有的 api 来处理所有事情除了通知之外的其他)

  • 我不是要找人来解释如何使用 GCM 或指导我学习教程。我已经完成研究并获得了几个启动和运行 GCM 推送通知的“示例”,但是到目前为止我发现的教程都没有告诉我如何让我的服务器自行推送。

  • 我需要向用户发出的通知类型包括新好友请求、来自其他用户的新私有(private)消息、对被通知用户发布的内容的新评论、对用户已评论内容的新评论(类似于如果评论被添加到你评论过的状态,fb 通知你的方式)

最佳答案

对于您描述的任务(好友请求、私有(private)消息、通知等),GCM 绝对是最佳选择。当事件发生时,您的服务器将发送 GCM 消息,而 Google 会管理消息的发送 - 您不必担心手机是否开机或类似情况。

听起来您已经接近于将所有这些放在一起,但是缺少一个部分 - GCM 消息的实际发送。至少根据我的经验,没有自动推送的概念。每次推送都基于发生的某些操作,例如发送的消息或新的好友请求。例如,如果您已经设置了代码来处理服务器上的好友请求并更新数据库,您只需要添加一些代码来查找被请求者的 GCM ID 并发送一条 GCM 消息告诉您的客户已收到好友请求。在 Android 客户端,您将拥有一个扩展 GCMBaseIntentService 的类,该类将接收此消息并在收到好友请求时运行您想要运行的任何客户端代码(发布本地通知、更新 ui 等)

关于php - 社交 Android 应用程序的通知系统 - 推送与轮询以及如何制作服务器 "Push",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14948946/

相关文章:

parse-platform - 移动推送通知和实时聊天在 ionic 应用程序中使用 parse 或 pubnub

php - Laravel Eloquent 过滤关系按最后一个数据透视记录

Android:如何在单选AlertDialog中设置选择?

使用 varchar 数据类型作为输入的 PHP GET 请求

android - PorterDuff.Mode.MULTIPLY - Android 中这种颜色转换的意义

java - Android libgdx... Sprite 水平来回移动

php - 如何在 Android 中使用 firebase 向 1000 多个用户发送推送通知?

javascript - 如何捕获或收听浏览器通知?

php - 如何根据 ID 获取 PayPal 订阅

php - 如何防止引用表中出现重复?