第三方推送不能参与业务

简介: 第三方推送不能参与业务

现在基本上很少有app没有继承推送功能了。虽然app推送消息满手机飞,因此很多用户把app的推送大都关闭了,以减少流量损失和推送骚扰,但是仍有用户对喜欢的应用开启推送功能,特别是使用期间(如:购买商品成功–收到货物前)。然而推送是最好的推广和留住及激活老用户的手段。不能因为部分关闭推送功能就放弃这个免费的推广手段,确实无节制的推广也让人反感。极软推送很有必要,那么咱们就介绍下著名的第三方推送平台:个推。

貌似个推以前是完全免费的,机会均等的。现在也开始收费了,见个个推网站服务介绍。

可以看到,注册用户500万以下,个推免费。这个还是比较人性化。若一个app注册人数500万以下说明,他所在公司还在创建期或早期发展期。给他们一个发展时间是应该的。若公司真做大了再出点费用也是可以的。最关键的是,在下午4点到晚上8点之间,个推没有限制免费用户的消息推送。我调查发现,有的推送平台在推送高峰时会扔掉免费用户的消息,这样的免费不用也吧!毕竟有时间有,有时间没有的推送没有什么价值。

iOS10之前,个推的集成非常简单。iOS10之后,个推的集成和证书配置复杂多了。我遇到一堆问题都和他有关。

先介绍下推送使用的一个重要原则,这个原则是我在做曹操专车时,领导总结出来的:第三方推送不能参与业务。因为第三方推送的服务器就那么几台甚至有的只有一台主推送服务器,用户却是千万甚至亿级别,各种手机类型差异极大,权限限制五花八门。用户关闭推送收不消息是很正常的问题,用户可不管什么原因,出了问题都怪商家。若你的业务完全依赖产生的问题多严重可想而知。最大的问题是在下午4点和晚上8之间,推送消息使用高峰时,推送服务器负担十分严重,甚至阻塞,甚至消息丢失。有的消息半个小时甚至更久才能收到。在做曹操专车时,遇到一次,个推服务器被攻击,乘客收不到接到推送消息,司机没有办法发呆了半小时,业务中断了。可以看到业务完全依赖第三方推送的弊端有多大。公司痛定思痛,总结出第三方推送不能参与业务,只能当推广和公告使用的结论。后期全部换成自己的socket长连接推送消息及https请求确认消息。

以前我在最鲜到那家小公司时从个推换成百度云推送,腾讯云推送。结果测试的结果推送1条消息,8个测试机立即收到,1个测试机几分钟后收到,最后一个手机测试机器永远没有收到消息。这个是其中的一次简单的测试就可以看到使用第三方的推送多么不靠谱。2013年开始做app( 做的第一个app是ccms),还带了一个同事学习ios开发。2014年做最鲜到app,在前期预研时,选择的方案是长连接,我经过一个月的研究已经实现了sokect连接通信。以前我负责华为 AnyOffice(现在叫 AnyOffice Agent)的push service开发,就是 socket方面的开发,当时没有把相关代码搞出来。但是自己写实现socket比较快些,毕竟写过这方面的代码。但是相关iOS的socket开源框架还很少,我们也不知道。后来大老板要求一个月的时间做出第一版本的app。我建议使用socket,但是安卓和服务器方面没有这方面的人才,就使用了第三方推送的方案。当时我家里有紧急的事情,回家办理事情去了。我回来时他们加班加点真的做出来了。但是由于完全采用第三方推送外卖订单,结果可想而知。消息不稳定,有的人收不到或抢不到订单,由此出现的问题很多都无解。后期大力拓展市场,扩展app的功能。业务以及模式上还是“老一套”,技术上忽视最根本的消息推送问题。结果在A轮融资失败,而倒闭。详细见众包物流有多难?“最鲜到”因资金链断裂倒下了,幸亏我2015年7月就离开了那个项目,去做吉利做曹操专车了,不然可能和他们一样连工资都拿不到,只能抱着一台电脑回家了。痛定思痛,我在做曹操专车司机段时使用的是我自己写的socket,保证了app健康运行,虽然前期也有问题,但是随后就逐渐稳定了。可能见一个技术选型可能影响一个公司的业务发展。

想做一个依赖于可靠长连接的服务,那么自己做长连接是绕不过去的坎。既然绕不过去这个坎,那么咱们就踏过去。我开始是自己做的socket连接,但是由于app太多,我只做了苹果的长连接,没有做安卓的长连接,安卓和苹果不能兼容,后来换成了GCDAsyncSocket第三方socket开源组件。这也是对哪些不懂socket的福音吧!他们能解决我们遇到的99%问题,不能解决100%的问题,但是若对他要求不太高的话,已经足够了。连接时,他使用的是毫秒级别无差别快速重连方式,当网络异常时,是否费电,当然网络正常时,耗电两相对较少。《个推使用指南》


目录
相关文章
|
1月前
|
运维 监控 数据挖掘
应用研发平台EMAS产品常见问题之华为离线推送接收失败如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
|
1月前
|
运维 监控 Java
应用研发平台EMAS常见问题之不设置SendChannels无法收到推送如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
|
1月前
|
域名解析 运维 监控
应用研发平台EMAS产品常见问题之离线通知收不到如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
|
1月前
|
设计模式 小程序 安全
【社区每周】商家分账接入指南更新;基础库新增抽象节点功能及上周问题反馈(2月第二期)
【社区每周】商家分账接入指南更新;基础库新增抽象节点功能及上周问题反馈(2月第二期)
158 11
|
7月前
|
存储 开发者
钉钉企业内部应用与第三方企业应用的主要区别
钉钉企业内部应用与第三方企业应用的主要区别
198 1
|
7月前
|
安全 小程序 API
在钉钉中,自己企业内系统的一些信息,想要通过上下游组织中的外部群进行传达,一般采取怎样的方式处理?
在钉钉中,自己企业内系统的一些信息,想要通过上下游组织中的外部群进行传达,一般采取怎样的方式处理?
66 0
|
API 数据格式 JSON
宜搭应用与第三方系统数据互通怎么做?
使用 HTTP 连接器向宜搭的 API 发送请求。具体来说,您可以使用集成自动化中的 HTTP 连接器,设置其为定时触发,并将编写的脚本中转换后的数据作为 HTTP 请求的 body,发送 POST 请求到宜搭的 API 接口。
宜搭应用与第三方系统数据互通怎么做?
|
SQL 移动开发 Java
企业内部应用接入钉钉获取部门及人员信息
企业内部应用接入钉钉,同时通过API获取当前企业下部门及人员信息
企业内部应用接入钉钉获取部门及人员信息
|
移动开发 缓存 小程序
LARAVEL 钉钉部门等对接,自动与同步内容。
laravel 中使用自定义SDK,实现基础业务数据与钉钉同步
920 0
LARAVEL 钉钉部门等对接,自动与同步内容。
|
存储 开发工具 Android开发