之前看到一个帖子讨论支付宝或者微信这些的扫码登入/扫码支付,手机扫了码之后,电脑端也就收到反馈。
回复说明了有两种实现方式:
很明显第二种方法对服务器的压力更小。
那我现在的问题是,iOS 设备是如何收到来自苹果推送服务器发来的消息呢(似乎这和邮箱收信差不多?),应该不可能是轮询或者建立长连接吧。
1
magicianzrh 2015-02-12 16:50:22 +08:00 1
找一个类似这种http://xg.qq.com/
|
2
magicianzrh 2015-02-12 16:52:47 +08:00
没打完字就回复了
这种sdk目前很多的,找一个差不多的 你可以通过tag呀之类的发 不过嘛如果你想对某个账号做得好一点么 remote push还是自己搞搞比较好 |
3
yttyhf2006 2015-02-12 16:57:57 +08:00
APNS => Apple Push Notification Services
链接仅供参考 http://blog.csdn.net/ryantang03/article/details/8482259 |
4
caoyue 2015-02-12 19:33:18 +08:00 via iPhone
TCP 长连接
加心跳机制 |
5
weisoo 2015-02-12 19:42:06 +08:00 1
IOS设备和苹果官方服务器建立一条长链接,所有软件如果要向IOS设备发送消息,都通过这条链接。
|
6
huanglexus OP @weisoo 这个连接是只要联网就一直建立?
|
7
huanglexus OP @magicianzrh 我只是对这个实现比较好奇= =
|
8
yellowV2ex 2015-02-12 23:23:30 +08:00 1
@huanglexus 安卓不知道,苹果是直连,因为苹果推送是iOS处理不是app自己去连接的。
|
9
wadezhao 2015-02-12 23:24:58 +08:00
没看懂你的问题。
手机扫码,电脑网页有了反应,这明显是手机向Server提交了信息,然后Server再“PUSH(姑且这么称呼)”了信息到电脑浏览器上。 这和iOS如何收到推送,有什么关系? 另外iOS的推送就是系统维持一个长连接,这个可以搜到很多文章介绍。 |
10
wadezhao 2015-02-12 23:26:39 +08:00 1
@yellowV2ex 安卓现在官方也有一个推送方案,是模仿苹果,由安卓系统去维持一个统一的长连接。
可惜这个方案依赖Google框架,所以国内的软件基本上都是各个APP各自为政,国外大一些的软件如果不想放弃大陆市场,也必须有自己的推送方案。 感谢党,感谢国家……………… |
11
huanglexus OP 多谢大家,作为学完《数据通信与计算机网络》的大三学生居然从未听说过 TCP 长连接,真是不好意思 ~~~~~~~~
|
12
yellowV2ex 2015-02-12 23:33:20 +08:00
@wadezhao google这货也真是的,自己拍怕屁股走了,留下用户和开发商纠结一生
|
13
weisoo 2015-02-13 00:25:17 +08:00
@huanglexus 是的,一直建立
|
14
geeti 2015-02-13 00:45:18 +08:00
@huanglexus 需要知道的是,运营商的Service router对idle的tcp链接是有timeout机制的,各个厂商的路由器不太相同,如果心跳时间间隔超过路由器的允许范围,tcp就会被阻断
|
15
mornlight 2015-02-13 00:55:17 +08:00
你说的那个扫码场景,一般是走HTTP的。
推送使用的当然不会是这个协议。 |
16
dddd1919 2015-02-13 08:48:14 +08:00
为什么很明显长链接对服务器的压力更小?明明是轮询么,另外像微信扫码那种,用的是长轮询
|
17
zjuster 2015-02-13 11:08:23 +08:00
知乎曾有内部RD简单讲了下微信扫码登陆的产品逻辑。
现在微信已经不用扫码登陆了,直接iOS Wechat点登陆就行了。 |
18
c742435 2015-02-13 14:29:08 +08:00
@huanglexus 有两种方式,轮询和长链接
通常使用长链接。在长链接无法使用的时候使用轮询。 记得很久很久以前 也许是ipad4的时代 推送是有选项的。上面写着如果基于长连接的推送不能使用时,可以自选到苹果服务器查询的频率,5分钟一查 30分钟一查什么的。 |
19
standin000 2015-02-13 15:55:23 +08:00
@zjuster 网页登陆,不用扫描了吗?
|
20
zjuster 2015-02-13 16:07:35 +08:00
@standin000 我说的是mac 版...
|