`
lahvey
  • 浏览: 1007 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Android/PHP百度推送服务(非百度账户系统)

 
阅读更多

考虑到百度的人才和技术底蕴,都没有做任何技术性考察就选择了百度推送,但是实际使用才发现百度的软件开发标准化流程还有待提高。

 

C/S模式推送的基本流程:
  • 服务器端发送消息到百度
  • 百度接收消息然后发送到客户端
  • 客户端接收消息并处理
基本概念:
  • 对于非百度账户系统的应用,每个移动设备都是不同的用户(不同的user_id),不同的终端标识(channel_id),这里的user_id和channel_id都是百度返回的变量,与自有系统无关。对于同一台设备同一个应用同一个用户,每次从百度返回的user_id和channel_id相同(有待验证)。
  • 而对于使用百度账户系统的应用,可使用百度账户登录,因此多个移动设备可使用相同的user_id。 
消息推送实现基本步骤(仅限移动应用自有账户系统的场景):
  • 申请API Key 及 Secret Key,参见官方说明;
  • Android客户端用户登录,记录用户uid;
  • Android客户端调用PushManager.startWork启动推送服务,调用onBind获得从百度返回的user_id和channel_id;
  • Android客户端将uid、user_id和channel_id发送到PHP服务器;
  • PHP服务器收到请求后查询(uid, channel_id)的记录是否已存在,若不存在则加入(表示编号为uid的用户所登录的编号为channel_id的终端,具有唯一性),若存在则检查user_id是否相同,如果不同则更新user_id;
  • PHP服务器查询编号为uid的用户所关联的终端,取出该用户对应的所有user_id;
  • PHP服务器遍历此user_id数组,调用$channel->pushMessage向该用户的所有终端推送消息;
问题:
  • PHP服务器端记录同一个用户的多个channel_id,但是很有可能对应的终端已失效,因此有必要同时记录其过期时间。每当Android客户端发送channel_id时刷新此过期时间,同时检查已过期的记录并删除。这样对于已过期的终端对应的user_id就不用多余的推送。
分享到:
评论

相关推荐

    极光推送服务端DEMO

    6. **安全性**:使用极光推送服务端API时,需要提供AppKey和MasterSecret,这是极光推送账户的安全凭证。DEMO会展示如何安全地存储和使用这些凭证,避免泄露。 7. **推送效果监控**:极光推送提供了详尽的统计报告...

    OneSignal是一项针对网络和移动应用程序的免费推送通知服务。这个Codeigniter示例可以轻松地将您的网站与O.zip

    OneSignal 是一个强大的推送通知服务平台,它为网络和移动应用开发者提供了一种简单、高效的方式来发送和管理推送通知。这项服务允许开发者通过一个统一的接口,向多种平台(包括iOS、Android以及Web)的用户发送...

    企业通讯录移动Android版

    5. **通知提醒**:当通讯录有更新时,可能会推送通知给用户,以便他们及时了解变化。 总的来说,【企业通讯录移动Android版】是一个集成通讯录查询、编辑、用户管理等功能的综合系统,通过高效的移动端实现,优化了...

    即时通讯APP源码 IM聊天社交APP+ios可上架+安卓苹果双端+pc端+H5端+微信端

    本系统发送消息采用异步推送以及缓存技术,消息秒推送,即便服务器配置低,客户也感觉不到卡慢,图片浏览之后直接实时预览,无需等待上传。 APP 端历史聊天记录、图片以及前台程序缓存在本地,页面秒开,支持云端...

    IDENTITY完成用户注册认证,PHPCURL多线程GETPOST类.pdf

    DDpush可能是一种推送服务的实现,可以用于实时消息推送、实时数据同步等应用场景。 6. PHPcms_v9-: PHPcms_v9-可能是指某个版本号的PHP内容管理系统(CMS),CMS是一种用于管理网站内容的应用程序,可以用于创建...

    手机免流量上网浏览器php源码

    这通常通过代理服务器或者内容缓存机制来实现,将网页内容在服务器端处理后,以优化的形式推送给用户,从而减少数据传输量。此外,“上传到空间,解压到根目录”指的是常规的PHP应用部署流程,即把源代码上传到支持...

    Laravel开发-pushwoosh

    Pushwoosh则是一款强大的推送通知服务,可以帮助开发者轻松地向移动设备发送个性化消息。当我们谈论“Laravel开发-pushwoosh”时,我们指的是将Pushwoosh集成到Laravel项目中的过程,以便利用其功能来提升用户体验和...

    Laravel开发-onesignal-laravel

    在本文中,我们将深入探讨如何在 Laravel 框架中集成 OneSignal,这是一个流行的推送通知服务,用于向移动设备和Web应用发送实时消息。Laravel 是一个基于 PHP 的优雅、简洁且功能强大的 web 应用程序开发框架。而 ...

    仿QQ聊天客户端

    最后,考虑到用户体验,客户端可能包含推送通知服务,如Google Firebase Cloud Messaging (FCM),以便即使在应用未打开的情况下也能及时收到新消息的通知。 综上所述,开发一个【仿QQ聊天客户端】涉及到Android应用...

    基于云服务的校园快捷配送平台的研究与设计.pdf

    该平台与物联网网络、4G通讯网络和交通信息网络等连接互通,确保校园配送中的各种信息实时化,资源虚拟化,进而能够提供包括订单任务搜索、客户端推送、地理定位调度在内的综合信息服务。 在开发环境方面,校园快捷...

    ECSHOP手机版源码

    8. **推送通知**:集成推送服务,实现订单状态、促销活动等信息的即时推送。 9. **用户认证与授权**:理解ECSHOP的用户登录、注册、权限管理机制,以确保用户账户的安全。 10. **多语言支持**:如果需要搭建多语言...

    ChatApp:是在Android中开发的聊天应用程序,在PHP和Firebase中开发的后端应用程序用于通知

    在这个系统中,Android客户端作为用户界面,负责与用户交互,而PHP作为服务器端语言处理数据逻辑,Firebase则提供实时数据库和云消息推送服务。 1. **Android开发**:ChatApp是使用Java编程语言开发的,这是Android...

    Laravel开发-pusher-mobile-notifications

    在本文中,我们将深入探讨如何在 Laravel 开发环境中集成 Pusher Mobile Notifications,以便为移动应用提供实时推送通知。Pusher 是一个云服务提供商,它允许开发者轻松地在 Web 和移动应用中实现实时功能,如聊天...

    小京东V4.2单仓库完整最新版.rar

    10. **移动端APP开发**:针对iOS和Android的原生应用,可能使用Swift和Java或Kotlin进行开发,提供更流畅的用户体验,同时利用移动设备的特性,如推送通知、地理定位等。 11. **API接口**:为了与其他系统和服务...

    Bmob云平台在Android App开发中的应用

    Bmob云平台是专为移动应用开发者提供的一种后端服务解决方案,它极大地简化了Android App的开发流程,尤其是针对数据存储、文件管理、用户管理和消息推送等核心功能。通过集成Bmob的SDK,开发者无需深入学习额外的...

    短信接口短信接口

    6. **批量发送**:一些接口支持批量发送短信,可以一次性给多个用户发送相同或定制的短信,适用于大型活动通知或营销推送。 7. **状态报告**:接口通常会返回短信发送的状态,如成功、失败、正在发送等,帮助开发者...

    接口开发文档

    本文档详细介绍了一个由智游网安(郑州)网络科技有限公司开发的推送平台服务端接口,主要用于帮助开发者理解和使用该公司的推送服务。 #### 二、文档修订历史 - **初稿**(2012-11-15):由舒虹鑫完成,这是接口...

    拼车网源码

    8. **通知系统**:通过短信、邮件或推送通知,源码需要实现实时的消息传递,如行程确认、取消通知、价格变动等。 9. **用户评价与反馈**:用户评价系统是提高服务质量的重要环节,源码应包含用户对司机和行程的评价...

    谷歌眼镜MirrorAPI开发

    时间线是用户在Google Glass上看到的主要信息流,开发者可以借助这个接口推送通知、图片、视频等信息到用户的眼前。 开发过程中,你需要掌握以下几个核心概念: 1. **时间线(Timeline)**: 这是Google Glass上...

Global site tag (gtag.js) - Google Analytics