更新时间: 2021-03-08
# 设置状态监听
当 SDK 与融云服务器的连接状态发生变化时,开发者可通过下面方法进行处理。
实现此功能需要开发者遵守 RCConnectionStatusChangeDelegate
协议。
# 参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
delegate | id | 是 | IMLib 连接状态监听器 |
参数 | 类型 | 说明 |
---|---|---|
status | RCConnectionStatus (opens new window) | SDK 与融云服务器的连接状态 |
# 代码示例
- 设置代理对象:
[[RCIMClient sharedRCIMClient] setRCConnectionStatusChangeDelegate:self];
已复制
1
- 实现协议方法:
- (void)onConnectionStatusChanged:(RCConnectionStatus)status { }
已复制
1
2
3
2
3
# 设置消息监听
当 SDK 在接收到消息时,开发者可通过下面方法进行处理。 SDK 会通过此方法接收包含单聊、群聊、聊天室、系统类型的所有消息,开发者只需全局设置一次即可,多次设置会导致其他代理失效。
实现此功能需要开发者遵守 RCIMClientReceiveMessageDelegate
协议。
# 参数说明
代理对象参数说明:
传入参数 | 类型 | 必填 | 说明 |
---|---|---|---|
delegate | id | 是 | IMLib 消息接收监听器 |
userData | id | 否 | 用户自定义的监听器 Key 值,可以为 nil |
协议方法参数说明:
参数 | 类型 | 说明 |
---|---|---|
message | RCMessage (opens new window) | 当前接收到的消息 |
nLeft | int | 还剩余的未接收的消息数 |
object | id | 消息监听设置的 key 值 |
offline | BOOL | 是否是离线消息 |
hasPackage | BOOL | SDK 拉取服务器的消息以包( package )的形式批量拉取,有 package 存在就意味着远端服务器还有消息尚未被 SDK 拉取 |
# 代码示例
- 设置代理对象:
[[RCIMClient sharedRCIMClient] setReceiveMessageDelegate:self object:nil];
已复制
1
- 实现协议方法:
- (void)onReceived:(RCMessage *)message left:(int)nLeft object:(id)object offline:(BOOL)offline hasPackage:(BOOL)hasPackage { }
已复制
1
2
3
2
3