当前知识库站点已不再维护。请移步新版知识库:https://help.rongcloud.cn/

特殊的 App 如何在 iOS 后台强制保持永久的长连接?

仅仅针对获取了特殊权限、能够在系统后台长时间存活的 App,使用融云的 SDK 如何在后台强制保持永久的长连接,以及相关注意事项
发布时间: 2015-11-24 11:02

回答:

一个非常重要的前提,是您的 App 自身拥有在 iOS 系统后台长期存活的权限,否则您可以忽略下面的所有内容,使用 SDK 默认设置即可。

设置 SDK 在后台强制保持永久的长连接的步骤:

1、首先确认开发者 App 拥有在 iOS 系统后台长期存活的权限。

在 iOS 系统中,一般的 App 进入后台一段时间之后就会被冻结,SDK 针对这种情况已经做了良好的设计和默认的处理。

App 进入后台两分钟之后,默认对断开和融云服务器的长连接,通过 APNS 进行消息的推送,以保证用户体验。

有些 App 自身能获取到在系统后台长期存活的权限,如:外设、物联网、越狱等特殊的应用,可以通过设置是 SDK 在后台强制保持永久的长连接。


2、4.x 版本位置在 RongIMLib.framework 中有一个 RCConfig.plist 文件,开发者需要将这个文件单独导入工程中。增加一个 Key 为 Connection 的 Dictionary,在其中增加一个 Key 为 ForceKeepAlive 的 Boolean 属性,将 Value 设置为 YES。SDK 就会在后台强制保持永久的长连接。

WechatIMG33.png

    5.x 版本位置在RongIMLibCore.xcframework 中有一个 RCConfig.plist 文件,开发者需要将这个文件单独导入工程中。增加一个 Key 为 Connection 的 Dictionary,在其中增加一个 Key 为 ForceKeepAlive 的 Boolean 属性,将 Value 设置为 YES。SDK 就会在后台强制保持永久的长连接。

image.png

WechatIMG33.png


3、设置了强制保持永久长连接,开发者需要根据项目业务和 App 情况,自己执行断开连接的操作,比如根据用户长时间没有操作应该手动断开长连接节省耗电量提升用户体验。


最后,重要的事情再说一遍,如果开发者 App 不具备长时间在后台存活的权限,请使用 SDK 默认设计,不需要进行任何配置。