连接接口

将通过 Server 获取到的 Token,通过 RCIM 的单例,调用下面的方法,即可建立与服务器的连接。

参数 类型 说明
token NSString Server API 获取 Token
successBlock void 连接建立成功的回调
errorBlock void 连接建立失败的回调
tokenIncorrectBlock void token 错误或者过期的回调

/*!
 与融云服务器建立连接
 
 @discussion 在App整个生命周期,您只需要调用一次此方法与融云服务器建立连接。
 之后无论是网络出现异常或者App有前后台的切换等,SDK都会负责自动重连。
 除非您已经手动将连接断开,否则您不需要自己再手动重连。

 @warning 如果您使用IMKit,请使用此方法建立与融云服务器的连接;
 如果您使用IMLib,请使用RCIMClient中的同名方法建立与融云服务器的连接,而不要使用此方法。
 */
- (void)connectWithToken:(NSString *)token
                 success:(void (^)(NSString *userId))successBlock
                   error:(void (^)(RCConnectErrorCode status))errorBlock
          tokenIncorrect:(void (^)(void))tokenIncorrectBlock;

提示

tokenIncorrectBlock 有两种情况:

  1. token 错误

    请您检查客户端初始化使用的 AppKey 和您服务器获取 token 用的AppKey是否一致;

  2. token 过期

    是因为开发者后台设置了 token 过期时间,需要请求服务器重新获取 token 并再次用新的 token 建立连接。

tokenIncorrectBlock 的情况下,您需要请求您的服务器重新获取 token 并建立连接,但是注意避免无限循环,以免影响 App 用户体验。

此方法的回调并非为原调用线程,您如果需要进行 UI 操作,请注意切换到主线程。

关于 RCConnectErrorCode,开发者仅需关注以下几种连接错误码,其余错误码 SDK 均会进行自动重连,开发者无须处理。

错误码 参数 原因
31002 RC_CONN_ID_REJECT App Key 错误,请检查使用的 App Key 是否正确。
31004 RC_CONN_TOKEN_INCORRECT Token 无效,参考上诉文档 tokenIncorrectBlock 的两种错误情况。
31007 RC_CONN_PACKAGE_NAME_INVALID 检查 App 的 BundleID 是否正确。
31008 RC_CONN_APP_BLOCKED_OR_DELETED App Key 被封禁或已删除,检查使用的 App Key 是否正确。
31009 RC_CONN_USER_BLOCKED 用户被封禁,检查使用的 Token 是否正确,以及对应的 UserId 是否被封禁。
31010 RC_DISCONN_KICK 当前用户在其他设备上登录,此设备被踢下线
33001 RC_CLIENT_NOT_INIT SDK 没有初始化,在使用 SDK 任何功能之前,必须先 Init
33003 RC_INVALID_PARAMETER 检查接口调用时传入的参数类型和值。
-1000 RC_INVALID_ARGUMENT 检查接口调用时传入的参数类型和值。