PubNub 发布订阅如何在 iOS(客户端)内部工作

How PubNub publish subscribe works internally in iOS (client side)

考虑到所有 os 限制,我想知道它使用什么技术来传递实时消息 iOS。我想到的很少

即使应用程序处于后台,它的发布订阅也能正常工作吗?

从 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 上有一个很好的教程,很好地解释了所有选项。

还有PubNub Swift for iOS SDK 4.x