PubNub 发布订阅如何在 iOS(客户端)内部工作
How PubNub publish subscribe works internally in iOS (client side)
考虑到所有 os 限制,我想知道它使用什么技术来传递实时消息 iOS。我想到的很少
- 定期轮询
- 与服务器的持久连接,例如 websocket 或 xmpp
- 推送通知
即使应用程序处于后台,它的发布订阅也能正常工作吗?
从 4.0 开始,PubNub iOS SDK 在 运行 所在的应用暂停时不会接收订阅事件。您可以通过 PubNub 的 APNS 网关设置推送通知以接收推送事件,但它们的处理方式与标准推送通知不同,与 PubNub 事件不同。
当您的应用 运行 时,PubNub 似乎使用 websocket 连接来发送和接收通知。当您订阅的频道收到消息时,您创建的客户端会收到回调。
他们的 SDK 是开源的,所以如果您有兴趣,可以检查内部发生的事情。
PubNub 和后台连接
在后台保持连接并通过 subscribe
继续接收实时消息不是 PubNub SDK 的功能,如果您使用的是 PubNub 也没关系 iOS 3.x SDK(请不要,它已停产)或 PubNub Objective-C for iOS 4.x SDK(请开始使用它或尽快迁移到它)。您必须在后台配置和实施您的应用 运行,并且 Apple 必须(通过应用审查)授予您这样做的权限。
您的应用程序必须是证明背景合理的类型 activity:see Apple dev docs for iPhone OS Programming Guide - Background Execution (table 3.1)
RayWunderlich.com Background Modes in iOS 上有一个很好的教程,很好地解释了所有选项。
考虑到所有 os 限制,我想知道它使用什么技术来传递实时消息 iOS。我想到的很少
- 定期轮询
- 与服务器的持久连接,例如 websocket 或 xmpp
- 推送通知
即使应用程序处于后台,它的发布订阅也能正常工作吗?
从 4.0 开始,PubNub iOS SDK 在 运行 所在的应用暂停时不会接收订阅事件。您可以通过 PubNub 的 APNS 网关设置推送通知以接收推送事件,但它们的处理方式与标准推送通知不同,与 PubNub 事件不同。
当您的应用 运行 时,PubNub 似乎使用 websocket 连接来发送和接收通知。当您订阅的频道收到消息时,您创建的客户端会收到回调。
他们的 SDK 是开源的,所以如果您有兴趣,可以检查内部发生的事情。
PubNub 和后台连接
在后台保持连接并通过 subscribe
继续接收实时消息不是 PubNub SDK 的功能,如果您使用的是 PubNub 也没关系 iOS 3.x SDK(请不要,它已停产)或 PubNub Objective-C for iOS 4.x SDK(请开始使用它或尽快迁移到它)。您必须在后台配置和实施您的应用 运行,并且 Apple 必须(通过应用审查)授予您这样做的权限。
您的应用程序必须是证明背景合理的类型 activity:see Apple dev docs for iPhone OS Programming Guide - Background Execution (table 3.1)
RayWunderlich.com Background Modes in iOS 上有一个很好的教程,很好地解释了所有选项。