跳转至

连接接口

连接方法

提示

  1. token 错误,请您检查客户端初始化使用的 AppKey 和您服务器获取 token 用的AppKey是否一致;
  2. token 过期,是因为您在开发者后台设置了 token 过期时间,您需要请求您的服务器重新获取 token 并再次用新的 token 建立连接。
  3. tokenIncorrectBlock 的情况下,您需要请求您的服务器重新获取 token 并建立连接,但是注意避免无限循环,以免影响 App 用户体验。
参数 类型 说明
token NSString 通过 Server API 获取到的 Token
successBlock void 连接建立成功的回调
errorBlock void 连接建立失败的回调
tokenIncorrectBlock void token错误或者过期的回调
- (void)connectWithToken:(NSString *)token
				 success:(void (^)(NSString *userId))successBlock
				   error:(void (^)(RCConnectErrorCode status))errorBlock
		  tokenIncorrect:(void (^)(void))tokenIncorrectBlock;

连接状态监听器

注意

  1. 如果开发者使用 IMLib,可以设置并实现此 Delegate 监听连接状态变化;
  2. 如果开发者使用 IMKit,请使用 RCIM 中的 RCIMConnectionStatusDelegate 监听消息接收,而不要使用此监听器,否则会导致 IMKit 中无法自动更新 UI。
参数 类型 说明
status RCConnectionStatus SDK 与融云服务器的连接状态
// RCIMClient Class

/*!
IMLib连接状态的的监听器

@discussion
设置IMLib的连接状态监听器,请参考RCIMClient的setRCConnectionStatusChangeDelegate:方法。
*/
@protocol RCConnectionStatusChangeDelegate <NSObject>

/*!
IMLib连接状态的的监听器

@discussion 如果开发者设置了IMLib消息监听之后,当SDK与融云服务器的连接状态发生变化时,会回调此方法。
*/
- (void)onConnectionStatusChanged:(RCConnectionStatus)status;

自动重连互踢设置

用户没有开通多设备消息同步的前提下,同一个账号在一台新设备上登录的时候,会把这个账号在之前登录的设备上踢出。由于 SDK 有断线重连功能,存在下面情况:

用户在 A 设备登录,A 设备网络不稳定,导致断开连接 SDK 启动重连机制。用户此时又在 B 设备登录,B 设备连接成功。A 设备网络稳定之后,用户在 A 设备连接成功,B 设备被踢出。

为避免 A 重连后主动将 B 踢掉的情况,提供了设置接口,通过接口可设置网络重连后是否强行踢出已连接设备,文档如下:

注:此功能首先需要客户提工单,在服务端开通此功能后,客户端调用该方法才生效

设置如下:

/**
 设置断线重连时是否踢出重连设备

 @discussion
 用户没有开通多设备登录功能的前提下,同一个账号在一台新设备上登录的时候,会把这个账号在之前登录的设备上踢出。
 由于 SDK 有断线重连功能,存在下面情况。
 用户在 A 设备登录,A 设备网络不稳定,没有连接成功,SDK 启动重连机制。
 用户此时又在 B 设备登录,B 设备连接成功。
 A 设备网络稳定之后,用户在 A 设备连接成功,B 设备被踢出。
 这个接口就是为这种情况加的。
 设置 enable 为 YES 时,SDK 重连的时候发现此时已有别的设备连接成功,不再强行踢出已有设备,而是踢出重连设备。

 @param enable 是否踢出重连设备
 */
- (void)setReconnectKickEnable:(BOOL)enable;