场景: 用户 APP 发起付款请求后,服务端接受付款请求,并把结果返回给商家 APP 。要求实时,延迟不超过 10S 。
看了下几个主流做推送的,比如百度,腾讯的 SDK ,只强调到达率,而且有时候到达率才%90 几,有时候几个小时才推到用户,支付订单这种需求比较强调实时和百分百到达,不能用户使用 APP 付完款了,还在傻傻等商家确认。
现在是不是没有可以做到基本实时的推送的 SDK 呢?
如果自己实现的话,有没有已经造好的轮子?(其实主要是想问这个,类 python , node.js 实现的,我本人做 C++好几年, C++实现这种需求太重了,不太想用。)
1
xingwing 2016-08-10 16:28:01 +08:00
ejabber
|
2
gamexg 2016-08-10 16:48:00 +08:00 via Android
用过 Socket.io , nodejs 写的,有 python java 库。
不过这个不支持持久化,有持久化需求要自己实现。 |
3
2225377fjs 2016-08-10 17:15:38 +08:00
感觉楼主说的更多的是业务方面的需求,不同的轮子在不同的业务场景下表现肯定也有差异。。。另外。。要实现这种业务,只是上网找点轮子,低成本搭起一个能用的估计还是容易,但是想要好用,就比较难了。。。毕竟饿了么,各大 app 的外卖类似的功能还是养了不少程序员的呀。
|
4
xialiwei 2016-08-10 17:58:29 +08:00 1
使用微信推送或者短信吧。
|
5
airyland 2016-08-10 18:15:26 +08:00
一般要做两步:发起请求后等待推送以及定时去服务端查询状态。
|
6
iyaozhen 2016-08-10 18:43:47 +08:00 via Android 1
到达率 90%已经很好了。主要是保活很难做, iOS 不能在后台运行只能通过 iOSpush ,这东西不能保证呀。 Android 更恶劣,各种 ROM ,而且现在基本上也不能在后台存活,用户手动设置白名单有时也没用。
|
7
dousao OP @iyaozhen 那现在有没有什么通用的方法解决 IOS 和 android 两个问题呢?你提到的 android 各种 rom 对于后台存活处理的问题很麻烦啊。
|
9
dousao OP @xialiwei 短信成本比较高, APP 的话 可能安装在特定的机器上,也不一定允许装微信,而且自己的 APP 如果连推送都实现不了 比较蛋疼啊
|
10
iyaozhen 2016-08-10 23:15:01 +08:00 via Android
@iyaozhen 不好解决,目前只能再接入华为 push 和小米 push 。不知道第三方 push 服务有没有集成这两家的。
还有你这个问题不能光靠 push 。还需要主动去拉取消息。主动拉取不是定时轮训,而是用户有一定操作,比如说打开 APP ,下拉刷新,或者进入订单列表啥的主动去拉取消息。拉取也是拉取 diff 消息,不是全量的(初次登录需要拉取全量)。拉取协议要能支持 tcp/udp/http 多种方式就更好了。 在线(后台活着的)的时候就主要靠服务端 push ,如果你对实时性要求特别高的话可以试试别的 IM sdk ,走实时消息。 |
12
zado 2016-08-11 09:12:56 +08:00
我没有发现这个场景那里需要实时推送。商家需要确认,那商家自然会主动去拉消息。如果确认不是很重要,那客户就不必等商家确认,最多客户把自己的支付结果给商家看一下就可以了。
|