极光推送开发者平台 是哪一个种类 长连接 离线推送

2770人阅读
视频通话(9)
移动互联网应用现状
  因为手机平台本身、电量、网络流量的限制,移动互联网应用在设计上跟传统 PC 上的应用很大不一样,需要根据手机本身的特点,尽量的节省电量和流量,同时又要尽可能的保证数据能及时到达客户端。
  为了解决数据同步的问题,在手机平台上,常用的方法有2种。一种是定时去服务器上查询数据,也叫Polling,还有一种手机跟服务器之间维护一个 TCP 长连接,当服务器有数据时,实时推送到客户端,也就是我们说的 Push。
  从耗费的电量、流量和数据送达的及时性来说,Push 都会有明显的优势,但 Push 的实现和维护成本相对较高。在移动无线网络下维护长连接,相对也有一些技术上的难度。本文试图给大家介绍一下我们极光推送在 Android 平台上是如何维护长连接。
  移动无线网络的特点
  因为 IP v4 的 IP 量有限,运营商分配给手机终端的 IP 是运营商内网的 IP,手机要连接 Internet,就需要通过运营商的网关做一个网络地址转换(Network Address Translation,NAT)。简单的说运营商的网关需要维护一个外网 IP、端口到内网 IP、端口的对应关系,以确保内网的手机可以跟 Internet 的服务器通讯。
  图片源自 .
  NAT 功能由图中的 GGSN 模块实现。
  大部分移动无线网络运营商都在链路一段时间没有数据通讯时,会淘汰 NAT 表中的对应项,造成链路中断。
  Android 平台上长连接的实现
  为了不让 NAT 表失效,我们需要定时的发心跳,以刷新 NAT 表项,避免被淘汰。
  Android 上定时运行任务常用的方法有2种,一种方法用 Timer,另一种是AlarmManager。
  Android 的 Timer 类可以用来计划需要循环执行的任务,Timer 的问题是它需要用 WakeLock 让 CPU 保持唤醒状态,这样会大量消耗手机电量,大大减短手机待机时间。这种方式不能满足我们的需求。
  AlarmManager
  AlarmManager 是 Android 系统封装的用于管理 RTC 的模块,RTC (Real Time Clock) 是一个独立的硬件时钟,可以在 CPU 休眠时正常运行,在预设的时间到达时,通过中断唤醒 CPU。
  这意味着,如果我们用 AlarmManager 来定时执行任务,CPU 可以正常的休眠,只有在需要运行任务时醒来一段很短的时间。极光推送的 Android SDK 就是基于这种技术实现的。
  服务器设计
  当有大量的手机终端需要与服务器维持长连接时,对服务器的设计会是一个很大的挑战。
  假设一台服务器维护10万个长连接,当有1000万用户量时,需要有多达100台的服务器来维护这些用户的长连接,这里还不算用于做备份的服务器,这将会是一个巨大的成本问题。那就需要我们尽可能提高单台服务器接入用户的量,也就是业界已经讨论很久了的 C10K 问题。
  C2000K
  针对这个问题,我们专门成立了一个项目,命名为C2000K,顾名思义,我们的目标是单机维持200万个长连接。最终我们采用了多消息循环、异步非阻塞的模型,在一台双核、24G内存的服务器上,实现峰值维持超过300万个长连接。
  稳定维护长连接是推送平台的一个基础,极光推送团队将会在这方面长期投入,以保证用户能有效的节省电量、流量,同时数据能实时送达。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1421007次
积分:15451
积分:15451
排名:第496名
原创:168篇
转载:342篇
评论:184条
(4)(3)(2)(1)(2)(11)(3)(2)(6)(18)(3)(5)(2)(1)(2)(43)(31)(21)(66)(97)(160)(1)(11)(4)(5)(8)
框架,界面,联网
框架,界面,联网
框架,界面,联网极光推送方家文:推送行业的现状与未来
推送,是一种技术形式。由于其相对独立,并且有一定的技术门槛,所以被单独拿出来,由公司专门来提供这个服务。在线下递送实物有快递员,在移动互联网上的信息的推送服务也跟快递一样,将应用开发者或者企业等要发送的信息,发送到用户的移动终端上。
为此,雷锋网采访了国内为数不多几家推送产品的技术团队,极光推送产品总监方家文,就其团队现身经历的一些现状,给各位不了解推送重要性的开发者一个小小的科普。
国外发展的现况
欧美发达国家已经有很多提供推送技术服务的专业公司,其中 Urban Airship 是做得比较早,也比较成功的一家。甚至有很多大公司如 Oracle、Amazon、Intel、Salesforce 等使用其服务。他们的推送技术,除了在移动App上覆盖很广,而且传统的网站也已经在使用推送,力图达到实时Web的效果。
而国内,则是 2012 年开始,由极光推送正式公开发布后,让广大开发者感觉到有可以很容易地集成起来的第三方推送服务。
与众多App开发者交流时,我们发现可以如下地去分类:
1)相当一部分开发者还没有意识到推送对App的重要性
2)部分开发者有App里集成推送功能的需求,但由于之前国内没有易用的、真正向开发者开放的第三方服务可用,他们不得不痛苦地去折腾开源方案
3)少量开发者使用了国外的第三方推送服务,费用不菲。还有少部分自己基于开源方案搭建起来了推送服务,但性能、功能达不到要求。
国内外的差距,现存行业漏洞,用户认知的缺陷
从推送技术服务来说,我们有个戏称:国内互联网落后欧美发达国家至少2年。这个差距的关键在于,开发者的成熟度,用户的成熟度。
但是,国内有个与欧美发达国家不同的特点:&乱&。方家文提到,&乱&体现在手机App上,就是&推送&这样一个技术、iOS/Android 智能手机的最基本功能,被许多用户所疑惑、抵制:因为国内市场上下载的相当一部分应用,被嵌入推送广告。为此,甚至一些大的安全厂商、Android市场,也会抵制推送技术。
实际上,推送只一个技术,是手机的基本功能。在这个技术承载下,推送的内容可以是用户需要的,也可能是用户不需要的。用户可能直观地反感推送,这是可以理解的。但对于安全厂商、Android市场来说,在无法判断是否推送广告的情况下,则不应片面地抵制推送技术。而随着市场的成熟、用户的成熟,甚至法规的成熟,垃圾广告推送会越来越难以生存,推送技术本身带给用户的价值会越来越被认可。
以极光推送这款产品来说,做产品的初衷是什么,希望日后覆盖什么样的用户群
我们是一家移动互联网创业公司,做过很多款手机应用,也凑过移动IM的热闹。
做应用的过程中,我们发现为了提高用户活跃度与留存率,有必要主动与用户交互。我们用过 Android 本身的推送服务 C2DM (现在叫 GCM),但是在国内因为种种原因,只有不到 5% 的手机可以用。后来做IM,用户量做到了 100万以上规模。在思考IM的前景时,我们发现,我们辛苦搭建起来的 IM 技术平台,可以用来做推送。于是,基于IM技术基础,基于对大部分App都有必要具有Push功能的认知,我们做了极光推送。
极光推送的服务对象是移动App开发者,目前主要是 Android 应用开发者、iOS 应用开发者。对 Windows Phone 的支持,目前正在规划中。
产品的技术壁垒,行业准入标准
推送技术服务的一个最基本的特点是:所有客户端需要一直保持与服务器端的长连接。比如某App有100万用户,那么,推送技术服务提供商为这一个应用,就要有100万长连接维持在那里。
这个特点决定了,服务器端是技术的核心:要做到容量大、效率高、低成本。方家文坦言,实际上这并不是一个门槛高的行业,任何学过些相关技术的程序员,都可以根据目前已有的一些开源协议去做,但这种开发的方式一般只能做到单机3-5万的同时在线接入,如果未经过优化,服务的稳定性也会受到影响,而绝大部分的专业服务商也只能做到30-50万的单机在线(Urban Airship之前公布的数据是单机50万),而极光推送由于专门为推送场景做了特定系统设计,不但服务器端单机能够同时接入200万的用户,并且客户端有特别的优化,满足开发者对低耗电、低流量的核心需求。
国外推送技术服务一般都是要收费的,并且由于网络互通、中文支持等原因,所以国内开发者使用得少。笔者翻查了极光推送的价格列表,基本可以得出一个结论:所有开发者可以不受任何限制地使用基础服务,只有使用增值服务才需要适当地付费。这无疑大大地降低了国内开发者在App里集成推送服务的门槛。
除了以免费主打的服务,方家文还提到目前极光已经投入了大量的团队在后台支持上面,包括官网上看到大量的开发者文档、视频,此外还有QQ群的支持,对于不喜欢聊QQ的宅男程序员,还特意建造了一个在线问答社区服务开发过程中遇到的各种问题。
方家文表示,公司希望通过这种方式鼓励更多的特别是安卓平台的开发者,积极地在App里集成推送功能,提高App的活跃度与用户价值,运营出更好的产品,从而带来更大的收益。
看过本文的人还看过
最新图文推荐
大家感兴趣的内容
&&<a rel="nofollow" class="red" href="" target="_blank" color="red新版网站排行榜
===全新上线===
网友热评的文章简介已测试完美解决卡贴机 有锁无锁iphone4s、iphone5、iphone4、iphone3gs、iphone3g、iphone一代二代,完美越狱,不完美越狱:。《不越狱不可以》
工具/原料一份必须是独立的证书,不能是别人用过得(私信我留下联系方式),iTools,和你的iphone。方法/步骤下载证书:首先要确保你之前没有装过相关的push补丁,如pushdoctor,pushfix,pushcertcovert补丁,如果有请先进手机cydia的软件包卸载。恢复开始
设置-通用-还原-还原网络设置
将你的证书证书包打开, 将得到的四个文件+还原文件+教程
用itools将上面四个文件丢进越狱系统的 /var/mobile目录文件夹内 ITools下载地址:你直接百度一下。在在将这个【还原.deb】包丢进/var/root/Media/Cydia/AutoInstall (cydia安装目录) 数据线不要拔,重启你的手机2次.重启的时候个别机器可能会在白苹果那里停留一段时间,耐心等5分钟,如果还是没进系统,HOME+电源键长按到黑屏,再启动。在打开 /var/mobile 这里 看看四个证书文件是不是消失了.,如果证书不见了,说明证书导入成功。卸载手机QQ,并重新安装,是卸载重装不要覆盖升级!然后可以测试推送了。不推的软件卸载重新安装遍 重新设置你的上网节点(可以不设置) 设置-通用-网络-蜂窝数据-apn这里移动号码重新设置网络为cmnet,联通设置为3gnet(设置-通用-网络-蜂窝网络数据) . 有时由于网络问题和苹果服务器问题,推送有时会有延时的情况出现,这些都是属于正常现象 切记你用过的证书不要共享给别人,那样别人的手机会接收到你的推送消息,确实很神奇。而你用了别的用过的证书会造成会乱推送别人消息到你手机上,并且造成流量损失!至此教程结束,推送成功!如果一次没成功请重复上述操作。希望能帮到那些没有推送的疯友们解决问题!谢谢!
线刷宝“三星Galaxy S4 i9508”刷机教程,刷机能够让安卓手机变得更好玩、更拉风,但刷机并不是个简单的事情。得先获取ROOT权限再刷Recovery,还得往各大论坛去找ROM......
三星i9508 ROOT刷机教程.三星i9508 基本上所有的刷机软件都不能刷机,因为这款手机为定制机,ROOT版本就没有出来,但本人经过测试发现一个可以刷机的软件供大家测试 ......
1、创建名为“baidu_js_push.php”的文件,文件内容是上述自动推送JS代码; 2、在每个PHP模板页文件中的
标记后面添加一行代码: &?php include_once(&baidu_js......
thinkPHP整合百度云推送 服务器篇,什么是云推送?百度云推送(Puh)是一站式APP信息推送平台,为企业和开发者提供免费的消息推送服务,开发者可以通过云推送向用户精准......
thinkPHP整合百度云推送 服务器篇,什么是云推送?百度云推送(Puh)是一站式APP信息推送平台,为企业和开发者提供免费的消息推送服务,开发者可以通过云推送向用户精准......
最近在研究iOS的推送问题,遇到了一些问题,最终整理了一下,放在这里和大家分享。...在打开“Certificates”页面后,选择红框标注的+按钮准备添加一个“Apple Push Notif......
iphone push推送修复! 听语音| 浏览:4960 | 更新: 21:56 | ...然后重新设置你的上网节点 设置-通用-网络-蜂窝数据-apn这里 你之前写的什么就......
1. app端推送证书等配置文件的创建; 2. php推送服务器ssl证书的创建;: 工具/原料
Mac Linux Push Server iOS APP Project:......
3)持久连接(Push)方式:客户端和服务器之间建立长久连接,这样就可以实现消息的及时行和实时性。 三、消息推送解决方案概述 A、C2DM云端推送方案 在Android手机平台上......
自动推送就一段代码(function(){
var bp = document.createElement(&#39;script&#39;);
bp.src = &#39;//push./push.js&#39;;
push独立证书|修复iphone后台无推送问题修复法,已测试完美解决卡贴机有锁无锁ihoe4、ihoe5、ihoe4、ihoe3g、ihoe3g、ihoe一代二代,完美越狱,不完美越狱:。《......
Push独立证书IPhone3G/3GS/4QQ微信完美修复推送,店证书可以修复各种其他国家版本的iPhoe2G-3G-3GS-iPhoe4-iPhoe4S(未越狱不可以!)本店出售独立证书,如果无法使用,......
一、首先要确保你之前没有装过相关的push补丁,如pushdoctor,pushfix,pushcertcovert...在线状态管理里面设置后台在线时段为全天,退出后台(注意不是注销)接着测试推送......
也就是说对于需要 Push 功能的 App 来说,即使看...不让其进行无聊的推送,这样在运行大型程序之后,可以...还是需要给我们的 Android 机打个补丁:安装「Xposed......
push独立证书|修复iphone后台无推送问题修复法,已测试完美解决卡贴机有锁无锁ihoe4、ihoe5、ihoe4、ihoe3g、ihoe3g、ihoe一代二代,完美越狱,不完美越狱:。《......
想要使用Apple的推送功能就需要配置push证书: 工具/原料
苹果开发者账户: 方法/步骤
1 登录苹果开发者账户 步......
最近在研究iOS的推送问题,遇到了一些问题,最终整理了一下,放在这里和大家分享。...在打开“Certificates”页面后,选择红框标注的+按钮准备添加一个“Apple Push Notif......
1. app端推送证书等配置文件的创建; 2. php推送服务器ssl证书的创建;: 工具/原料
Mac Linux Push Server iOS APP Project:......
android.pushservice.action.PUSH_SERVICE&/& &/intent-filter& &/service& &!-- 4.4版本新增的CommandService声明,提升小米和魅族手机上的实际推送到达率 --& ......
提升小米和魅族手机上的实际推送到达率 --&
android:name=&com.baidu.mand......
我们可以从这里(/tokudu/AndroidPushNotificationsDemo)下载该...爱心推是创新工场指定推送合作伙伴,具有消息到达率高,实时性强等特点;帮助开发者......
PUSH推送广告。手机应用程序广告手段,把同一内容发给所用用户、重要的是推送内容的选择。优势:点击率和到达率高;缺点:由于是消息推送,用户会下意识的点击浏览,但下......
我们可以从这里(/tokudu/AndroidPushNotificationsDemo)下载该...A、推送原理 Android消息推送组件基于XMPP协议实现Android推送。XMPP(可扩展通讯和......
假设创建了一个App ID:cn.jpush.examlpe,并为此App ID配置开发环境的Push Notifications: 步骤阅读 18 创建该App ID的推送证书,如下图: 步骤阅读 19 创建App ......
1. app端推送证书等配置文件的创建; 2. php推送服务器ssl证书的创建;: 工具/原料
Mac Linux Push Server iOS APP Project:......
// 创建一个本地推送 UILocalNotification *notification = [[[UILocalNotification alloc] init] autorelease];
//设置10秒之后 NSDate *pushDate = [NSDate ......
推送的基本原理其实类似,其实就是通过手机和服务器之间的Socket维持一个TCP长连接...drawable-mdpi/、res/drawable-ldpi/等各分辨率资源目录下,放置相应尺寸的push.......
最近在研究iOS的推送问题,遇到了一些问题,最终整理了一下,放在这里和大家分享。...在打开“Certificates”页面后,选择红框标注的+按钮准备添加一个“Apple Push Notif......
push独立证书|修复iphone后台无推送问题修复法,已测试完美解决卡贴机有锁无锁ihoe4、ihoe5、ihoe4、ihoe3g、ihoe3g、ihoe一代二代,完美越狱,不完美越狱:。《......jpush(1)
极光推送技术原理:移动无线网络长连接
移动互联网应用现状
因为手机平台本身、电量、网络流量的限制,移动互联网应用在设计上跟传统 PC 上的应用很大不一样,需要根据手机本身的特点,尽量的节省电量和流量,同时又要尽可能的保证数据能及时到达客户端。
为了解决数据同步的问题,在手机平台上,常用的方法有2种。一种是定时去服务器上查询数据,也叫Polling,还有一种手机跟服务器之间维护一个 TCP 长连接,当服务器有数据时,实时推送到客户端,也就是我们说的 Push。
从耗费的电量、流量和数据送达的及时性来说,Push 都会有明显的优势,但 Push 的实现和维护成本相对较高。在移动无线网络下维护长连接,相对也有一些技术上的难度。本文试图给大家介绍一下我们在
Android 平台上是如何维护长连接。
移动无线网络的特点
因为 IP v4 的 IP 量有限,运营商分配给手机终端的 IP 是运营商内网的 IP,手机要连接 Internet,就需要通过运营商的网关做一个网络地址转换(Network Address Translation,NAT)。简单的说运营商的网关需要维护一个外网 IP、端口到内网 IP、端口的对应关系,以确保内网的手机可以跟 Internet 的服务器通讯。
图片源自 .&
NAT 功能由图中的 GGSN 模块实现。
大部分移动无线网络运营商都在链路一段时间没有数据通讯时,会淘汰 NAT 表中的对应项,造成链路中断。
Android 平台上长连接的实现
为了不让 NAT 表失效,我们需要定时的发心跳,以刷新 NAT 表项,避免被淘汰。
Android 上定时运行任务常用的方法有2种,一种方法用 Timer,另一种是AlarmManager。
Android 的 Timer 类可以用来计划需要循环执行的任务,Timer 的问题是它需要用 WakeLock 让 CPU 保持唤醒状态,这样会大量消耗手机电量,大大减短手机待机时间。这种方式不能满足我们的需求。
AlarmManager
AlarmManager 是 Android 系统封装的用于管理 RTC 的模块,RTC (Real Time Clock) 是一个独立的硬件时钟,可以在 CPU 休眠时正常运行,在预设的时间到达时,通过中断唤醒 CPU。
这意味着,如果我们用 AlarmManager 来定时执行任务,CPU 可以正常的休眠,只有在需要运行任务时醒来一段很短的时间。极光推送的 Android SDK 就是基于这种技术实现的。
服务器设计
当有大量的手机终端需要与服务器维持长连接时,对服务器的设计会是一个很大的挑战。
假设一台服务器维护10万个长连接,当有1000万用户量时,需要有多达100台的服务器来维护这些用户的长连接,这里还不算用于做备份的服务器,这将会是一个巨大的成本问题。那就需要我们尽可能提高单台服务器接入用户的量,也就是业界已经讨论很久了的 C10K 问题。
针对这个问题,我们专门成立了一个项目,命名为C2000K,顾名思义,我们的目标是单机维持200万个长连接。最终我们采用了多消息循环、异步非阻塞的模型,在一台双核、24G内存的服务器上,实现峰&#20540;维持超过300万个长连接。
稳定维护长连接是推送平台的一个基础,将会在这方面长期投入,以保证用户能有效的节省电量、流量,同时数据能实时送达。
本条目发布于。属于分类,被贴了&、、、、&标签。作者是。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:74182次
积分:1311
积分:1311
排名:千里之外
原创:19篇
转载:223篇
(17)(10)(2)(11)(7)(3)(1)(2)(1)(6)(1)(7)(18)(40)(34)(26)(6)(9)(33)(9)

我要回帖

更多关于 极光推送开发者平台 的文章

 

随机推荐