
之前看到一个帖子讨论支付宝或者微信这些的扫码登入/扫码支付,手机扫了码之后,电脑端也就收到反馈。
回复说明了有两种实现方式:
很明显第二种方法对服务器的压力更小。
那我现在的题是,iOS 设备是如何收到来自苹果推送服务器发来的消息呢(似乎这和邮箱收信差不多?),应该不可能是轮询或者建立长连接吧。
1 magicianzrh 2015-02-12 16:50:22 +08:00 找一个类似这种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 IOS设备和苹果官方服务器建立一条长链接,所有软件如果要向IOS设备发送消息,都通过这条链接。 |
6 huanglexus OP @weisoo 这个连接是只要联网就一直建立? |
7 huanglexus OP @magicianzrh 我只是对这个实现比较好奇= = |
8 yellowV2ex 2015-02-12 23:23:30 +08:00 @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 @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 版... |