ios - PUBNUB + IOS 如何管理后台在线/离线/离开状态?

标签 ios chat pubnub user-presence

我们希望在 iOS 中使用 Pubnub 框架实现在线/离线,但应用程序在后台运行的时间不能超过 10 分钟。我们尝试通过启用位置功能来实现这一点,并且它工作正常。但客户不想为此目的启用位置服务。那么我们如何才能让后台无限运行呢? (问题 1)

如果我们想在代码中添加在线/离线/离开状态

我们应该在哪里展示, 在线:当用户打开应用程序时 离线:当用户从后台关闭应用程序或删除应用程序时 离开:当用户点击主页按钮并且应用程序处于后台时。

我们将如何实现这一点(特别是离开和离线状态)?(QUE 2)

还有其他方式来管理在线/离线/离开吗? (没有 Pubnub )(QUE 3) 如果是,请描述方式。

我们如何使用网络服务管理在线/离线/离开?我们什么时候称其为网络服务? (问题 4)

我们正在使用几乎 3-4 年的基本代码。那么我们是否应该在 plist 中添加任何其他参数以使应用程序在后台运行更长时间? (问题 5)

请指导我们。

最佳答案

PubNub Presence ,您有在应用程序中提供此功能的最佳方法,但由于 iOS 处理应用程序进入后台的方式,您可能有机会也可能没有机会更新此状态(取决于应用程序的运行配置方式)。

但很简单,by enabling Presence for your PubNub keys ,当客户 subscribes to a channeljoin 事件会发送到正在监听该 channel 上的状态的所有其他订阅者。

当应用程序进入后台时,如果您有机会这样做,您可以call unsubscribe on all the channels客户端被订阅,leave 事件将被发送到监听状态事件的该/那些 channel 的所有订阅者。

如果应用程序被终止或进入后台,而您没有机会调用取消订阅,那么当应用程序离线/断开连接的时间超过配置的心跳周期,然后超时(相当于离开事件)将被发送到所有监听状态事件的订阅者。

heartbeat defaults to 5 minutes but you can configure this to a lower setting like 60 seconds (或者对于需要此操作的用例更短,但不得低于 15 秒)。

如果您希望您的服务器监听 Presence 事件,那么您将需要使用我们的 Presence Webhooks(文档即将推出)。请参阅this StackOverflow thread about how to implement PubNub Presence Webhooks and how to get your PubNub keys configured to use them

关于ios - PUBNUB + IOS 如何管理后台在线/离线/离开状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30521730/

相关文章:

ios - 将 ViewController 与 swift 中的类型进行比较

android - GCM 和 quickblox 推送通知

PHP/JQuery - 从另一个客户端向客户端发送数据

android - 根据UUID退订用户

node.js - 构建聊天应用程序 : How to get time

ios - 辅助功能 VoiceOver 不适用于 UILabel

ios - 为什么信号在 ReactiveCocoa 中被调用两次?

ios - AFNetworking 2.0 可达性

networking - 点对点聊天理论

android - gradle中的依赖冲突