【问题标题】:How PubNub publish subscribe works internally in iOS (client side)PubNub 发布订阅如何在 iOS 内部工作(客户端)
【发布时间】:2016-04-18 01:19:36
【问题描述】:

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

  • 定期轮询
  • 与 websocket 或 xmpp 等服务器的持久连接
  • 推送通知

即使应用在后台,它的发布订阅是否也有效?

【问题讨论】:

    标签: ios pubnub


    【解决方案1】:

    从 4.0 开始,当 PubNub iOS SDK 正在运行的应用程序被挂起时,它不会接收订阅事件。您可以通过 PubNub 的 APNS 网关设置推送通知以接收推送事件,但它们的处理方式类似于标准推送通知,而不是 PubNub 事件。

    当您的应用运行时,PubNub 似乎使用 websocket 连接来发送和接收通知。当您订阅的频道收到消息时,您创建的客户端会收到回调。

    他们的 SDK 是开源的,因此如果您有兴趣,可以查看内部发生的情况。

    【讨论】:

    • 谢谢马修!我得到了源,但我只是想知道它的用途,然后如果需要,我会查看源以获取详细信息。 android也会发生同样的事情吗?
    • 发布/订阅事件在应用程序暂停时不起作用,但当应用程序处于后台时,只要您有一些后台模式(例如有限长度- background-task 给你大约 3 分钟的后台时间来让代码继续执行)
    【解决方案2】:

    PubNub 和后台连接

    在后台保持连接并通过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 上有一个很棒的教程,它很好地解释了所有选项。

    还有PubNub Swift for iOS SDK 4.x

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-01
      • 2019-11-02
      • 2012-02-04
      • 1970-01-01
      相关资源
      最近更新 更多