【发布时间】:2016-04-18 01:19:36
【问题描述】:
我想知道考虑到所有操作系统限制,它使用什么技术来传递 iOS 实时消息。我想到的很少是
- 定期轮询
- 与 websocket 或 xmpp 等服务器的持久连接
- 推送通知
即使应用在后台,它的发布订阅是否也有效?
【问题讨论】:
我想知道考虑到所有操作系统限制,它使用什么技术来传递 iOS 实时消息。我想到的很少是
即使应用在后台,它的发布订阅是否也有效?
【问题讨论】:
从 4.0 开始,当 PubNub iOS SDK 正在运行的应用程序被挂起时,它不会接收订阅事件。您可以通过 PubNub 的 APNS 网关设置推送通知以接收推送事件,但它们的处理方式类似于标准推送通知,而不是 PubNub 事件。
当您的应用运行时,PubNub 似乎使用 websocket 连接来发送和接收通知。当您订阅的频道收到消息时,您创建的客户端会收到回调。
他们的 SDK 是开源的,因此如果您有兴趣,可以查看内部发生的情况。
【讨论】:
在后台保持连接并通过subscribe 继续接收实时消息不是 PubNub SDK 的功能,如果您使用的是 PubNub iOS 3.x SDK 也没关系(请不要,它有 EOL 'ed)或PubNub Objective-C for iOS 4.x SDK(请开始使用它或尽快迁移到它)。您必须配置和实施您的应用程序才能在后台运行,Apple 必须(通过应用程序审查)授予您这样做的权限。
您的应用必须是证明后台活动合理的类型:see Apple dev docs for iPhone OS Programming Guide - Background Execution (table 3.1)
RayWunderlich.com 上的 Background Modes in iOS 上有一个很棒的教程,它很好地解释了所有选项。
【讨论】: