android-cn / topics

Android 精选话题讨论, 微信公众号:codekk, 网站:
https://github.com/android-cn/topics/issues
Apache License 2.0
678 stars 57 forks source link

Android 第三方 Push 推送方案使用调查 #4

Open Trinea opened 9 years ago

Trinea commented 9 years ago

目前市场上很多三方推送方案,很多朋友问到哪个更稳定、到达率更高。

大家可以讲下自己项目中用到的及遇到的坑。

三方推送方案包括:

较早的 JPush、个推 后来腾讯的信鸽、小米推送、百度推送、华为推送、友盟推送。

PS:知乎上有类似的问题,但答案被大量水军充斥,这里会清净的多。

Trinea commented 9 years ago

先沙发: 二年前在创业公司用过个推的推送,百万量级用户,到达率不高、问题挺多,算是早期的小白鼠

limox commented 9 years ago

请教一下:一个应用如果同时集成多个推送服务,服务器根据推送服务商网络稳定情况,自动切换推送服务,是不能提高推送率?

susiha commented 9 years ago

目前用的jpush 免费的 所以送达率不是很高 公司不肯出钱 将就用

jasonross commented 9 years ago

大众点评13年的时候用过小米推送,到达率统计有60%左右,属于小米推送的早期用户吧,据说踩了不少坑,后面自己去做了推送。

z56402344 commented 9 years ago

个推没有组的概念,只有通过tag去区分,不知道你们是怎么进行测试的?

limox commented 9 years ago

有个开源的推送:http://www.ddpush.net/overview 可以了解下

XBeats commented 9 years ago

我们公司用的友盟的推送,用户不是很多,感觉一般,之前用个推好像对服务器有限制的。。。

snowolf9929 commented 9 years ago

目前也是用的小米推送,官方统计的到达率也是60%左右,之前用过百度推送,到达率差不多,但太多坑,各种不兼容造成崩溃、Application循环重启、手机发烫等

tanranran commented 9 years ago

用的是极光,在某些网络运营商下,会注册失败

l123456789jy commented 9 years ago

目前用的是腾讯信鸽!用户量不是很大!

yanbober commented 9 years ago

百度和友盟

sensensen404 commented 9 years ago

Leancloud的不错就是了

longhunpeter commented 9 years ago

百度、JPush都用过都存在一些问题

web3citizen commented 9 years ago

用的个推 产品还没发布 内部网非常快 秒推 估计也没有参考意义 呵呵

Dminter commented 9 years ago

创业公司 个推用了两年 现在换做信鸽 慢慢尝试中 个推的问题主要有 消息被缓存后不能顺序送达 信号不好 网络切换频繁 以及一些奇葩网络环境 如电信 移动需加代理的情形是无可送达的 服务被干掉时有发生 且在诸如华为这样的机型上是没法自启 后面信鸽也出现了 可能是业界难题 可对于带点IM性质的app很致命

firebear commented 9 years ago

关键是到达率。IM对消息即时性的要求很高,还是不要用推送做IM吧。 同时用两家方案以提升到达率的想法值得试试。

limox commented 9 years ago

不用推送做IM用什么@firebear

FreeTymeKiyan commented 9 years ago

项目当中用过极光。大家可能没听说过Google刚收购的Firebase,专注做实时数据同步的,推送和IM都能做。参加过他们的30分钟教你做一个IM应用的课程,挺不错的。可以试试墙内能不能使用。

jasonross commented 9 years ago

大家推送的到达率是怎么统计的?

Quennel commented 9 years ago

项目用过jpush,容易出现提交tag和alias延迟,推送到达率还可以,就普遍都比较慢,但后来因为量实在太高,即使是企业合作,费用还是高得有点难接受。 后来用开源的gopush自己搭建推送服务器,推送速度比jpush还快,只是缺少jpush的tag那块功能,需要后端业务自己实现,据说gopush作者目前在做GoIM,还未上线...

mrfanr commented 9 years ago

用的jpush 没有统计到达率

JasonBtc commented 9 years ago

目前项目里面打算用友盟来做推送,不知道靠谱否

moon-sky commented 9 years ago

用过JPUSH 到达率没有统计过,当时是做过年群发短信,百万级用户

yuchuangu85 commented 9 years ago

目前用的腾讯的信鸽推送,不是很稳定,有时推送较慢,不及时。

zhdh2008 commented 9 years ago

目前还没做过推送,mark一下

zhxhcoder commented 9 years ago

百度, 极光, 小米, 个推都用过,集成比较简单, 但到达率一般 做电商应用, 最后公司(投资人)担心信息泄露, 准备基于MQTT协议搭建自己的推送.

wozuihighwa commented 8 years ago

准备试一下 LeanCloud 的推送服务,有人用过吗?效果怎么样。

DoubleDa commented 8 years ago

之前公司使用第三方友盟推送SDK,快、到达率高

zmingchun commented 8 years ago

我最近在用LeanCloud的推送服务,到达率没测,不过测试阶段算是秒推吧。但是他们的技术支持非常不到位,而且工单还收费了;前不久还全线服务不能用几个小时。

Silocean commented 8 years ago

用过极光,不过体验不是很好:broken_heart:

wyw91 commented 8 years ago

公司有钱,7,800w(具体不清楚)买了ibm的message sight(软硬件一体,基于ibm的开源协议mqtt)做推送,性能说是不保证达到每秒4000w,保证达到每秒600w左右,看到内存150g,我信了,可惜就买了一台,做不了主备,然并卵。诸君有兴趣去了解下.

feicien commented 8 years ago

先说结论:小米推送是目前国内最好的推送,如果你还在犹豫选择什么推送,请选择小米推送吧。

根据友盟指数,目前国内活跃设备前十名中,小米占6位,三星占4位,数据出处:http://www.umindex.com/

这里我们可以把 Android手机简单的分为小米手机和其它手机。

小米手机: 小米推送在小米手机上是系统级服务,其它第三方推送的到达率肯定比不过它

其它手机: 小米推送和其它第三方推送到达率差不多

由于小米手机市场占有率比较高,所以小米推送应该是国内最好的推送了。

下面一些应用可以从侧面来证明我的推断:

腾讯新闻使用的小米推送,它没有使用自己家的信鸽推送

淘宝使用的是小米推送(Google Play上的版本应该应该是 GCM),以淘宝的技术,应该是可以自己做推送的,由于小米手机比较多,他们还是选择了小米推送

百度视频爱奇艺使用的是小米推送,没有用自家的百度推送

其它使用小米推送的 App 可以参考小米开发者网站:http://dev.xiaomi.com/doc/?page_id=1670

yuxingxin commented 8 years ago

目前在使用腾讯信鸽推送,也有很多问题,不稳定是主要的,另外就是到达率不高,好的情况下60%,坏的情况下40%也不到

jingle1267 commented 8 years ago

目前用的信鸽推送,到达率还不清楚

yjzhg commented 8 years ago

目前用信鸽,有延时。到达率差不多60%。

huhu2008 commented 8 years ago

极光推送还不错 具体没统计过 到达率不错感觉

EvlinLee commented 8 years ago

百度,jpush,小米都用过,小米算是比较稳定,从后台数据看到达率也高。 从友盟指数,前十有好几款是小米手机,还有上亿用户APP也在用:淘宝,爱奇艺视频,今日头条等。 百度推送过来的通知消息如果隔了较长时间才去点击通知的话,打开对应的应用挺久才反应过来,不知道是不是手机卡的问题,用的是三星S5。小米推送的不会,隔了较长时间点击通知基本上马上打开。

firebear commented 8 years ago

app不在前台推送也能到达,这才是好推送。

之前一直用的极光,没有特别统计过,感觉到达率就很高。我用极光推送做过一个实时报价的软件,每一分钟推送一次,每次几千用户,到达率刚刚的,没有用户抱怨。后来又用在另外一个软件里,这个推送频率低,有用户抱怨收到比较晚,但是还好。

这两天试用的友盟推送,推送到登记到友盟后台的测试设备,小米2S,发现很蛋疼啊:应用如果被杀掉,推送就根本到达不了! 不知道有朋友用过友盟推送吗?如果他有这样的缺陷,那么我们用他没有太大意义啊!

linbo commented 8 years ago

其实现在大多数推送都是单向的,就是用restful api 给设备推消息。由于是单向推送,设备收到消息怎么反馈给推送服务呢?难道再调用一次restful api,或者自己再设计一个协议回给服务? 现在很多推送都在说自己到达率到底有多高,但是这个到达率怎么得到的,谁也不知道。

如果了解mqtt协议的话,应该知道,mqtt是双向的。a给b推消息,b要回puback,a才知道消息已经推送成功,否则a会认为b没有收到消息,会保存消息,直到b回了puback。

所以通过mqtt协议,可以通过puback来实时计算到达率(如果qos=1)。当然推送仅仅看到达率是不够的,推送是否稳定,高效,各个平台之间是否可以相互通信,这些指标也很重要。

yunba.io 也在做类似的事情,就是提供各个平台之间的实时消息通信服务。 现在已经可以支持嵌入式设备(c sdk, c# sdk),web端(socketio),Android/iOS端之间的相互通信。 如果你的平台不支持,你可以自己实现平台的sdk,因为云巴的协议是开放的,大多数sdk也开放的,具体可以看 github

我觉得大家要说自己的服务有多好,至少要告诉大家为什么,不然口说无凭,有什么意思呢?

ghost commented 8 years ago

之前用过JPUSH免费版的,在某些低版本的手机上竟然跟其他SDK有冲突,导致其他SDK不能用

perrywky commented 8 years ago

感觉各个平台都差不多,关键是要让自己的App常驻内存,详见友盟的一篇 博客。 不过小米的系统级推送是不是可以拉起已经被杀掉的App?

firebear commented 8 years ago

这博客作者是友盟研发总监,也许正说出了他们的痛楚,就是app如果不驻内存,就很难送达。 这是实情。 而且App越来越难常驻内存。 这周刚处理了一个用户的问题,问题不说了,原因是这用户使用的华为手机,为了省电,有一个系统设置开关,是一锁屏就会干掉我们的应用程序! 为此,小米的自我标榜也不算是吹牛逼:“小米推送服务支持所有Android平台,在MIUI上属于系统服务框架,共享系统级长连接。” 上周,我先用的友盟推送,集成的确简单,但是很悲催地发现,不启动应用,都不能收到推送消息。考虑到我们的目的主要是为了唤醒睡眠用户,感觉这样就没什么用了。 然后就试了试小米,发现的确是就算把应用手动杀掉,推送也能到达。(测试手机:小米2S) 已经开始上线了,用一段时间试试看。

linbo commented 8 years ago

@firebear 你这个说明不了什么问题啊,用小米的推送,在华为手机上,一样会被干掉的。 只能说小米的推送可能在小米的系统上是系统级的,类似iOS的APNS。 但是Android手机厂商那么多,小米推送这个优势没有什么意义。

perrywky commented 8 years ago

如果做不了常驻内存,首选小米推送,毕竟已经是市场份额第一了

On Mon, Aug 3, 2015 at 11:03 AM linbo.liao notifications@github.com wrote:

@firebear https://github.com/firebear 你这个说明不了什么问题啊,用小米的推送,在华为手机上,一样会被干掉的。 只能说小米的推送可能在小米的系统上是系统级的,类似iOS的APNS。 但是Android手机厂商那么多,小米推送这个优势没有什么意义。

— Reply to this email directly or view it on GitHub https://github.com/android-cn/topics/issues/4#issuecomment-127108318.

firebear commented 8 years ago

我们的用户,小米一家已经占了一半以上。这是我们选择小米的重要原因。 目前集成小米推送的版本,已经上线了5000多用户,从小米后台的统计数据看,日活跃用户基本和总用户数吻合。换句话说,集成小米推送的版本,基本上都能连上小米的推送服务器。 当然,具体推送效果,还有待真正推送开始以后看。 我会持续关注和更新这个帖子。希望和大家交流,选好最适合自己的推送平台。 当然,如果最终的结论是各有所长各有所短,那就选技术支持妹子声音比较甜的那家。

firebear commented 8 years ago

第一次小米推送的数据来了。 昨天送达37251次,点击8485次,点击率23%。 我们支持小米推送的版本,昨天大概升级了64000,这样算来,小米的首日推送到达率:58%,和网上评价差不多。 活跃用户比推送前一日上升了16%,还可以,但是比期望值差不少。 发现一个问题是:推送开始以后,即使我把推送结束日期定在一个月后,推送开始之后新安装的客户端,就算是小米2S,也收不到推送。 有其他同学用过吗?来对比一下。

linbo commented 8 years ago

@firebear 好奇一下,小米的这些数据统计是怎么来的?他们是通过什么协议来保证这些数据的可靠性?

firebear commented 8 years ago

不是小米的人不知道他们怎么做的。 要做其实不难吧,关键是看送达是什么标准。 一般这种推送是长链接,TCP的,那么TCP有个“发送成功”,可以作为标准,当然这也不意味着就“接收成功”,要算“送达”了,也说得过去。但如果客户端收到以后,能发回一个确认,OK,那肯定算是“送达”了。 点击呢,也类似,用户点了消息以后,客户端往服务器端发一个消息,服务器端收不到,就不会记入点击数。收到了,才算。 瞎猜的。

firebear commented 8 years ago

第一次小米推送7天了,来个统计。 第几天 送达率 点击率 1 53% 23% 2 63% 23% 3 70% 22% 4 74% 22% 5 77% 22% 6 80% 22% 7 82% 22%

yjzhg commented 8 years ago

感觉最近信鸽的到达率简直惨不人睹