房间成员管理

本文主要介绍 云上曲率即时通讯IM SDK的房间成员管理功能。

功能描述

房间成员管理指处理房间内成员的一些管理操作,包括房间成员列表、房主转让、管理员授权等内容。由于房间成员管理涉及房间角色功能的参与,因此开发者在使用过程中请注意赋予用户的角色情况。

云上曲率IM SDK为开发者提供如下房间成员管理内容:

  • 获取房间成员列表
  • 获取房间成员数量
  • 房主转让
  • 管理员授权

注意:如果出现房主、管理员掉线情况,重新登录加入房间后,房主、管理员的角色依然不变。

接口说明

房间事件变更通知

房间成员管理功能中,当出现房主变更、房间管理员授权时,会接收到服务端的通知PUSH。

获取房间成员列表

房间成员可以使用getRoomMembers接口获取所在房间的成员情况,包括成员数量、成员角色等。

接口参数说明:

参数 含义 说明
roomId 房间ID 获取房间成员请求的房间ID
timeout 超时时间 请求的超时时间,单位为秒
代码示例
-(void)getRoomMembers:(NSNumber * _Nonnull)roomId
              timeout:(int)timeout
              success:(void(^)(NSArray <IMRoomMemberInfo*> * array))successCallback
                 fail:(IMAnswerFailCallBack)failCallback;

获取房间成员数量

未加入房间的用户可以使用getRoomMembersCount接口获取房间的成员数量。

接口参数说明:

参数 含义 说明
roomId 房间ID 获取房间成员数量的房间ID
timeout 超时时间 请求的超时时间,单位为秒
代码示例
-(void)getRoomMemberCount:(NSNumber * _Nonnull)roomId
                  timeout:(int)timeout
                  success:(void(^)(IMMemberCountAnswer * _Nullable memberCountAnswer))successCallback
                     fail:(IMAnswerFailCallBack)failCallback;

房主转让

房主可以使用transferRoom接口将所在房间的房主角色转让给当前房间内其他成员。 房主角色转让成功后,原房主角色变为普通成员,对应的功能权限也变更。房间其他成员收到由服务端推送的 房主转让 通知。

接口参数说明:

参数 含义 说明
roomId 房间ID 发起转让房间请求的房间ID
toUid 用户ID 将房主身份转移给其他用户ID
timeout 超时时间 请求的超时时间,单位为秒
代码示例
-(void)transferRoom:(NSNumber * _Nonnull)roomId
              toUid:(int64_t)toUid
            timeout:(int)timeout
            success:(void(^)(void))successCallback
               fail:(IMAnswerFailCallBack)failCallback;

管理员授权

房主 可以对房间内成员进行角色配置,赋予管理员权限。管理员的权限包括:

  • 移除房间内成员

注意:房间管理员无法对房间普通成员授权,也无法删除其他管理员。

新增管理员

房主 可以使用addRoomManagers将房间 普通成员 设置为 管理员 角色。完成后,房间其他成员收到由服务端推送的 新增管理员 通知。

接口参数说明:

参数 含义 说明
roomId 房间ID 新增管理员的房间ID
uids 用户ID 赋予管理员角色的用户ID
timeout 超时时间 请求的超时时间,单位为秒
代码示例
-(void)addRoomManagers:(NSNumber * _Nonnull)roomId
                  uids:(NSArray <NSNumber*>*)uids
               timeout:(int)timeout
               success:(void(^)(void))successCallback
                  fail:(IMAnswerFailCallBack)failCallback;
删除管理员

房主 可以使用removeRoomManagers将房间 管理员 设置为 普通成员 角色。完成后,房间其他成员收到由服务端推送的 删除管理员 通知。

接口参数说明:

参数 含义 说明
roomId 房间ID 删除管理员的房间ID
uids 用户ID 移除管理员角色的用户ID
timeout 超时时间 请求的超时时间,单位为秒
代码示例
-(void)removeRoomManagers:(NSNumber * _Nonnull)roomId
                     uids:(NSArray <NSNumber*>*)uids
                  timeout:(int)timeout
                  success:(void(^)(void))successCallback
                     fail:(IMAnswerFailCallBack)failCallback;