对于那些想要切入追逐并知道我要求的人。我的问题在下面的段落中编号和加粗。
我有一段时间试图找出 1.)如何为Android社交网络应用程序实现正确的通知系统?到目前为止,所有ive聚集的是有2个选择,轮询与推送相比,推送优于轮询bc它可以节省电池,推荐通知的方式是通过Google云消息传递(GCM),但我没有得到的是 2.)是什么让我的服务器推送?< / strong>和/或 3.)当有新数据可用时如何设置我的服务器端推送?进一步的研究暗示Facebook只能实现他们近乎实时的通知系统bc他们有某种服务器端api /库/技术称为节俭或类似的东西,可以检测到谁在网上和谁不是(不是积极的,为什么这很重要)。 4.)是否有人为我提供了一些尝试实施类似于Facebook的社交通知系统的提示?
其他重要信息:
我目前正在使用Codeigniter Rest服务器来支持api(PHP)
我更喜欢使用我现有的API实现的php解决方案,除非有另一种语言(Java,Ruby,Javascript)的解决方案可以独立实现(我仍然可以使用我现有的API来解决所有问题)除了通知之外的其他内容)
我不是在找人解释如何使用GCM或指导我阅读教程。我已经完成了研究并得到了GCM推送通知的几个“示例”,但是到目前为止我找到的教程都没有告诉我如何让我的服务器自行推送。
我需要向用户发出的通知类型包括新朋友请求,来自其他用户的新私人消息,被通知用户发布的内容的新评论,用户评论的内容的新评论(类似于如果评论被添加到uve评论的状态,fb通知你的方式)
答案 0 :(得分:5)
对于您描述的任务(朋友请求,私人消息,通知等),GCM绝对是您的选择。当事件发生时,您的服务器将发送GCM消息,并且Google管理消息的发送 - 您不必担心手机处于打开状态或类似情况。
听起来你已经接近将所有这些放在一起,但有一部分缺失 - 实际发送GCM消息。至少根据我的经验,没有自动推送的概念。每次推送都基于发生的某些操作,例如正在发送的消息或新的朋友请求。例如,如果您已经设置了代码来处理服务器上的朋友请求并更新数据库,那么您只需要添加一些代码来查找被请求者的GCM ID并发送GCM消息告诉您的客户端已收到朋友请求。在Android客户端,您将有一个扩展GCMBaseIntentService的类,它将接收此消息,并在收到好友请求时运行您想要运行的任何客户端代码(发布本地通知,更新UI等)