更新时间: 2021-03-08
# 设置状态监听
当 SDK 与融云服务器的连接状态发生变化时,开发者可通过下面方法进行处理。实现此功能需要开发者遵守 RCIMConnectionStatusDelegate
协议。
# 参数说明
代理对象参数说明:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
connectionStatusDelegate | id <RCIMConnectionStatusDelegate (opens new window)> | 是 | 连接状态的监听器 |
协议方法参数说明:
参数 | 类型 | 说明 |
---|---|---|
status | RCConnectionStatus (opens new window) | SDK 与融云服务器的连接状态 |
# 代码示例
- 设置代理对象:
[RCIM sharedRCIM].connectionStatusDelegate = self;
已复制
1
- 实现协议方法:
- (void)onRCIMConnectionStatusChanged:(RCConnectionStatus)status{ }
已复制
1
2
3
2
3
# 设置消息监听
当 SDK 在接收到消息时,开发者可通过下面方法进行处理。 SDK 会通过此方法接收包含 单聊、群聊、聊天室、系统 类型的所有消息,开发者只需全局设置一次即可,多次设置会导致其他代理失效。实现此功能需要开发者遵守 RCIMReceiveMessageDelegate
协议。
# 参数说明
代理对象参数说明:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
receiveMessageDelegate | id <RCIMReceiveMessageDelegate (opens new window)> | 是 | 消息接收的监听器 |
协议方法参数说明:
参数 | 类型 | 说明 |
---|---|---|
message | RCMessage (opens new window) | 当前接收到的消息 |
left | int | 还剩余的未接收的消息数 |
# 代码示例
- 设置代理对象:
[RCIM sharedRCIM].receiveMessageDelegate = self;
已复制
1
- 实现协议方法:
- (void)onRCIMReceiveMessage:(RCMessage *)message left:(int)left { }
已复制
1
2
3
2
3
通过此方法可以获取到每条消息,left 会依次递减直到 0。开发者可以根据 left 数量来优化 App 体验和性能,比如收到大量消息时等待 left 为 0 再刷新 UI。