说到“推送”,一般人会想起什么?手机上此起彼伏“嘟”的提示:“您有一封新邮件”、“微博有5条新回复”、“有20个应用可升级”、“深圳明天有雷暴”,这些都是推送,但不全面。推送的应用场景有很多,几乎一切会弹出对话框出来的信息都需要用到推送技术。
“你可以隔一段时间在电脑上刷邮箱查看有没有新邮件,也可以刷一个科技博客看有没有更新文章,但在移动端这种方式不大可行。移动端,人们的时间都是碎片的,注意力很容易分散,需要用push这种机制来及时获得新消息。随着移动互联网的发展,推送以后的应用场景还会越来越多。”JPush(极光推送)的CTO张虎说。
推送技术被很多人形象地比喻为“信息快递员”,将客户的图片、文字、报表等信息送到指定地点。为了保证“快递”能准确及时送达,JPush采取了一种长连接的方式,张虎说“长连接是唯一的推送方式”,而其他的轮询等方式只能算是“伪推送”,因为后者不管设置几分钟去服务器上查看有无新消息,都不可避免会有不同程度的延时。而长连接就类似于一种“永远在线”的状态,就像微信永远在线不会特别耗电一样,JPush也采用了一些技术手段让功耗降低。
在推送技术里,用户最关心的无非是送达率、稳定性和安全性问题,而这些JPush都有一定的技术保障。JPush提供了机制来保障客户端一定收到推送,只要用户网络无异常,送达率保证做到100%;所有的服务都有多点备份,以保障服务稳定可靠;另外在北上广的五星级机房有 3个部署点,作为容灾备份。
作为一种技术支持服务,JPush的主要客群不是终端用户,而是企业和中小开发者,其中开发者的比例占了绝大多数,其中不乏一些明星产品。中小开发团队对于推送有比较强的需求:因为推送是一项需要人力和财力成本的投入,一般的中小团队都有专注要做的内容,无论从技术、人力还是金钱成本上考虑,选用第三方的推送服务都是更好的选择。
极光也在和不少大客户保持紧密的沟通,有一些已经进入实质的合作阶段。张虎对JPush“大客户”的定义就是用户量级有千万级以上、主要业务范围是生产内容(比如新闻产品)或者O2O——一句话概括就是需要和用户有频繁沟通的产品,这些合作达成后JPush服务覆盖到的终端用户数将会有突破性的进展。但即便如此,张虎说目前还是有很多大客户对推送还没有足够的认识,市场的培育还需要一点时间。
图片来自网络
国内的第三方推送技术出来之前,一般的产品是怎么解决推送问题的?
国外的推送服务发展的比较早,苹果、Google都有自己的推送技术,也有专门从事推送服务的公司,比如Urban Airship,但由于服务器在国外等原因并不能保障信息推送的顺畅,这些服务在国内普及率很低。“Google的这种服务在国内根本就用不了。”
国内市场的发展比较滞后,极光也是去年10月才正式上线服务。产品总监方家文曾经表示过推送并不是一个技术门槛很高的活,国内第三方的推送服务也有一些开源的代码也可以用,中小开发者都是通过自己改写一些开源代码来组织自己的推送系统,但是过程很艰难,而且效果差强人意;大公司一般有自己的团队做推送,但因为不是赢利点,没有人会真正用心把心思花在这上面,而且和第三方服务比起来,自建团队耗时耗力。
“最关键的原因还是能否做到专注。我崇尚做一个简单的、轻量的服务,做到极致,”张虎这样描述极光推送所做的事,一边指着外面办公室二三十号人说, “这一整个研发团队都是为这一个推送项目服务的。”在正式上线之前JPush有1整年的技术沉淀期,不断地优化。在极光的推送机制里所有客户端都要和服务器保持长连接,一个产品有100万用户就需要100万个长连接,这很考验服务器容量和效率。绝大部分的专业服务商也只能做到30-50万的单机在线(Urban Airship之前公布的数据是单机50万),现在的极光推送单机可接入的长连接平均达到200万,峰值350万——但这只是设计值,一般不会出现一台服务器负荷350万终端客户端的现象。
极光推送的护城河在哪儿?
第一个是信任的门槛。由于极光进入的时间比较早,服务很稳定, 在开发者中间形成了一定的口碑;像这种to B的服务面向的都是专业用户,商业推广并不奏效,开发者之间的口口相传才是业务不断做大的原因。极光建立了一些QQ群、官网问答社区,也在开发者聚集的论坛做了一些曝光,截至今天Jpush已经拥有近6000名开发者用户。通常他们的新用户都是这样来的:开发者进入一个QQ群、论坛或社区,提问“哪一种推送服务比较好用”,如果刚好有几个用过JPush的人自发推荐,那么就好办了。开发者之间的自发交流成本非常低,不用极光费任何唇舌就可以吸纳一名新用户。
第二个就是积累。推送并不是技术门槛很高的服务,张虎反复强调的是“专注”,极光是一个20多人的研发团队专注一年的结果。“有新团队要切入这个领域当然还是有机会,但是要作好持续投入的准备。”
对于垃圾信息和广告推送,张虎说这是一个对生态系统非常有害的行为。在市场教育不充分的情况下,不恰当的推送很容易让用户对推送形成片面的理解。极光在这方面有一些努力,比如建议信息推送不要太频繁,发现不良信息即提出警示,有违规行为单方面终止服务等,但如何建立一个更良性的生态圈,这自然是需要多方的共同努力的。
最近JPush产品有没有什么计划?
JPush即将推送富媒体推送功能(Rich Push),以帮助开发者使用高级功能,并且计划在稍后的几个月内推出基于位置(LBS)的推送服务,让开发者只需要指定一个位置即向附近一定范围内的用户推送。