关于 iOS 设备如何接收到 push notificaton 的一点疑问

2015-02-12 16:28:17 +08:00
 huanglexus

之前看到一个帖子讨论支付宝或者微信这些的扫码登入/扫码支付,手机扫了码之后,电脑端也就收到反馈。

回复说明了有两种实现方式:

  1. 轮询,不停地向服务端询问用户是否扫了码
  2. 用WebSocket之类的建立长连接,一旦用户扫码成功,服务器传回消息

很明显第二种方法对服务器的压力更小。

那我现在的问题是,iOS 设备是如何收到来自苹果推送服务器发来的消息呢(似乎这和邮箱收信差不多?),应该不可能是轮询或者建立长连接吧。

3988 次点击
所在节点    iOS
20 条回复
magicianzrh
2015-02-12 16:50:22 +08:00
找一个类似这种http://xg.qq.com/
magicianzrh
2015-02-12 16:52:47 +08:00
没打完字就回复了
这种sdk目前很多的,找一个差不多的
你可以通过tag呀之类的发

不过嘛如果你想对某个账号做得好一点么 remote push还是自己搞搞比较好
yttyhf2006
2015-02-12 16:57:57 +08:00
APNS => Apple Push Notification Services

链接仅供参考
http://blog.csdn.net/ryantang03/article/details/8482259
caoyue
2015-02-12 19:33:18 +08:00
TCP 长连接
加心跳机制
weisoo
2015-02-12 19:42:06 +08:00
IOS设备和苹果官方服务器建立一条长链接,所有软件如果要向IOS设备发送消息,都通过这条链接。
huanglexus
2015-02-12 23:11:18 +08:00
@weisoo 这个连接是只要联网就一直建立?
huanglexus
2015-02-12 23:12:32 +08:00
@magicianzrh 我只是对这个实现比较好奇= =
yellowV2ex
2015-02-12 23:23:30 +08:00
@huanglexus 安卓不知道,苹果是直连,因为苹果推送是iOS处理不是app自己去连接的。
wadezhao
2015-02-12 23:24:58 +08:00
没看懂你的问题。

手机扫码,电脑网页有了反应,这明显是手机向Server提交了信息,然后Server再“PUSH(姑且这么称呼)”了信息到电脑浏览器上。

这和iOS如何收到推送,有什么关系?

另外iOS的推送就是系统维持一个长连接,这个可以搜到很多文章介绍。
wadezhao
2015-02-12 23:26:39 +08:00
@yellowV2ex 安卓现在官方也有一个推送方案,是模仿苹果,由安卓系统去维持一个统一的长连接。
可惜这个方案依赖Google框架,所以国内的软件基本上都是各个APP各自为政,国外大一些的软件如果不想放弃大陆市场,也必须有自己的推送方案。
感谢党,感谢国家………………
huanglexus
2015-02-12 23:31:02 +08:00
多谢大家,作为学完《数据通信与计算机网络》的大三学生居然从未听说过 TCP 长连接,真是不好意思 ~~~~~~~~
yellowV2ex
2015-02-12 23:33:20 +08:00
@wadezhao google这货也真是的,自己拍怕屁股走了,留下用户和开发商纠结一生
weisoo
2015-02-13 00:25:17 +08:00
@huanglexus 是的,一直建立
geeti
2015-02-13 00:45:18 +08:00
@huanglexus 需要知道的是,运营商的Service router对idle的tcp链接是有timeout机制的,各个厂商的路由器不太相同,如果心跳时间间隔超过路由器的允许范围,tcp就会被阻断
mornlight
2015-02-13 00:55:17 +08:00
你说的那个扫码场景,一般是走HTTP的。
推送使用的当然不会是这个协议。
dddd1919
2015-02-13 08:48:14 +08:00
为什么很明显长链接对服务器的压力更小?明明是轮询么,另外像微信扫码那种,用的是长轮询
zjuster
2015-02-13 11:08:23 +08:00
知乎曾有内部RD简单讲了下微信扫码登陆的产品逻辑。

现在微信已经不用扫码登陆了,直接iOS Wechat点登陆就行了。
c742435
2015-02-13 14:29:08 +08:00
@huanglexus 有两种方式,轮询和长链接
通常使用长链接。在长链接无法使用的时候使用轮询。
记得很久很久以前 也许是ipad4的时代 推送是有选项的。上面写着如果基于长连接的推送不能使用时,可以自选到苹果服务器查询的频率,5分钟一查 30分钟一查什么的。
standin000
2015-02-13 15:55:23 +08:00
@zjuster 网页登陆,不用扫描了吗?
zjuster
2015-02-13 16:07:35 +08:00
@standin000 我说的是mac 版...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/170502

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX