跳转至

聊天室

加入聊天室

参数 类型 说明
targetId NSString 聊天室ID
messageCount int 进入聊天室时获取历史消息的数量,-1 <= messageCount 且 messageCount <= 50
successBlock void 加入聊天室成功的回调
errorBlock void 加入聊天室失败的回调
messageCount值 说明
-1 表示不获取任何历史消息
0 表示不特殊设置而使用 SDK 默认的设置(默认为获取10条)
0 < messageCount <= 50 具体获取的消息数量,最大值为50

注意

如果是 7.x 系统获取历史消息数量不要大于 30

使用 Kit 库的会话页面 viewDidLoad 会自动调用 joinChatRoom 加入聊天室(聊天室不存在会自动创建), 如果您只想加入已存在的聊天室,需要在 push 到会话页面之前调用这个方法并且 messageCount-1,成功之后 push 到会话页面,失败需要您做相应提示处理。

*/

/*!
 加入聊天室(如果聊天室不存在则会创建)
 */
- (void)joinChatRoom:(NSString *)targetId
        messageCount:(int)messageCount
             success:(void (^)())successBlock
               error:(void (^)(RCErrorCode status))errorBlock;

/*!
 加入已经存在的聊天室
 @warning 如果不存在或超限会返回聊天室不存在错误 23410 或 人数超限 23411)
 */
- (void)joinExistChatRoom:(NSString *)targetId
             messageCount:(int)messageCount
                  success:(void (^)())successBlock
                    error:(void (^)(RCErrorCode status))errorBlock;

退出聊天室

参数 类型 说明
targetId NSString 聊天室ID
successBlock void 退出聊天室成功的回调
errorBlock void 退出聊天室失败的回调
- (void)quitChatRoom:(NSString *)targetId
             success:(void (^)())successBlock
               error:(void (^)(RCErrorCode status))errorBlock;

获取聊天室的信息

注意

务必在加入聊天室后调用此方法。

参数 类型 说明
targetId NSString 聊天室ID
count int 需要获取的成员信息的数量
order RCChatRoomMemberOrder 需要获取的成员列表的顺序
successBlock void 获取成功的回调
errorBlock void 获取失败的回调
RCChatRoomMemberOrder 类型 说明
RC_ChatRoom_Member_Asc 升序方式查询,将返回最早加入的成员信息列表,按加入时间从旧到新排列
RC_ChatRoom_Member_Desc 降序方式查询,将返回最晚加入的成员信息列表,按加入时间从新到旧排列。

提示

目前获取到的聊天室信息中仅包含不多于 20 人的成员信息,即 0 <= count 且 count <= 20,传入0获取到的聊天室信息将或仅包含成员总数,不包含具体的成员列表

/*!
因为聊天室一般成员数量巨大,权衡效率和用户体验,目前返回的聊天室信息仅包含不多于20人的成员信息和当前成员总数。
*/
- (void)getChatRoomInfo:(NSString *)targetId
                  count:(int)count
                  order:(RCChatRoomMemberOrder)order
                success:(void (^)(RCChatRoomInfo *chatRoomInfo))successBlock
                  error:(void (^)(RCErrorCode status))errorBlock;

聊天室属性自定义

为指定聊天室以 Key、Value 方式自定义设置属性信息,此服务需要在开发者后台开通 IM 商用版后,开通使用。

应用场景

1、语音直播室场景,可用于做会场属性的同步,如房间内的成员属性,麦位上的人员等等。

2、狼人杀等卡牌类的游戏场景,可用于记录用户的角色,牌局状态等。

警告

每个聊天室中,最多允许设置 100 个属性信息,以 Key、Value 的方式进行存储,每个聊天室中每秒钟最多允许操作 Key、Value 100 次。 聊天室销毁后,聊天室中的自定义属性同时销毁。

设置属性

通过 setChatroomEntry 接口设置聊天室属性,如 Key 不存在则正常添加,添加后该属性所有者为创建用户,其他用户无权通过此接口修改此 Key 值。

/**
 设置聊天室自定义属性
 */
- (void)setChatRoomEntry:(NSString *)chatroomId
                     key:(NSString *)key
                   value:(NSString *)value
        sendNotification:(BOOL)sendNotification
              autoDelete:(BOOL)autoDelete
       notificationExtra:(NSString *)notificationExtra
                 success:(void (^)(void))successBlock
                   error:(void (^)(RCErrorCode nErrorCode))errorBlock;

参数说明:

参数 类型 必填 说明
key String 聊天室属性名称,支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 128 字符
value String 聊天室属性对应的值,最大长度 4096 字符
chatroomId String 聊天室 Id
sendNotification Boolean 设置成功后是否发送通知消息,如果发送则 SDK 会接收到 RC:chrmKVNotiMsg 类型的通知消息,消息内容中包含设置的属性信息,查看通知详细
notificationExtra String 通知中携带的附加信息,RC:chrmKVNotiMsg 通知消息中会包含此字段,最大长度 2 kb
autoDelete Boolean 设置人员退出聊天室时,是否自动删除此 Key。

强制设置属性

通过 forceSetChatroomEntry 强制设置聊天室属性,如 Key 已经存则对 Value 值进行强制修改,如不存在则正常添加。若该属性由用户 A 添加,之后再由用户 B 强制更新,则该属性的所有者为用户 B。

/**
 强制设置聊天室自定义属性
 */
- (void)forceSetChatRoomEntry:(NSString *)chatroomId
                          key:(NSString *)key
                        value:(NSString *)value
             sendNotification:(BOOL)sendNotification
                   autoDelete:(BOOL)autoDelete
            notificationExtra:(NSString *)notificationExtra
                      success:(void (^)(void))successBlock
                        error:(void (^)(RCErrorCode nErrorCode))errorBlock;

参数说明:

参数 类型 必填 说明
key String 聊天室属性名称,支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 128 字符
value String 聊天室属性对应的值,最大长度 4096 字符
chatroomId String 聊天室 Id
sendNotification Boolean 设置成功后是否发送通知消息,如果发送则 SDK 会接收到 RC:chrmKVNotiMsg 类型的通知消息,消息内容中包含设置的属性信息,查看通知详细
notificationExtra String 通知中携带的附加信息,RC:chrmKVNotiMsg 通知消息中会包含此字段,最大长度 2 kb
autoDelete Boolean 设置人员退出聊天室时,是否自动删除此 Key。

删除属性

删除自己设置的聊天室属性,非自己设置的属性无法删除。

/**
 删除聊天室自定义属性
 */
- (void)removeChatRoomEntry:(NSString *)chatroomId
                        key:(NSString *)key
           sendNotification:(BOOL)sendNotification
          notificationExtra:(NSString *)notificationExtra
                    success:(void (^)(void))successBlock
                      error:(void (^)(RCErrorCode nErrorCode))errorBlock;

参数说明

参数 类型 必填 说明
chatroomId String 聊天室 Id
key String 需要删除的自定义属性名称
sendNotification Boolean 设置成功后是否发送通知消息,如果发送则 SDK 会接收到 RC:chrmKVNotiMsg 类型的通知消息,消息内容中包含设置的属性信息,查看通知详细
notificationExtra String 通知中携带的附加信息,RC:chrmKVNotiMsg 通知消息中会包含此字段对应为 extra,最大长度 2 kb

强制删除属性

强制删除聊天室中的任何属性

/**
 强制删除聊天室自定义属性
 */
- (void)forceRemoveChatRoomEntry:(NSString *)chatroomId
                        key:(NSString *)key
           sendNotification:(BOOL)sendNotification
          notificationExtra:(NSString *)notificationExtra
                    success:(void (^)(void))successBlock
                      error:(void (^)(RCErrorCode nErrorCode))errorBlock;

参数说明

参数 类型 必填 说明
chatroomId String 聊天室 Id
key String 需要删除的自定义属性名称
sendNotification Boolean 设置成功后是否发送通知消息,如果发送则 SDK 会接收到 RC:chrmKVNotiMsg 类型的通知消息,消息内容中包含设置的属性信息,查看通知详细
notificationExtra String 通知中携带的附加信息,RC:chrmKVNotiMsg 通知消息中会包含此字段对应为 extra,最大长度 2 kb

获取属性

1、获取某聊天室中指定属性信息

/**
 获取聊天室单个属性

 @param chatroomId 聊天室 Id
 @param key 聊天室属性名称
 @param successBlock 成功回调
 @param errorBlock 失败回调

 @discussion 必须先开通聊天室状态存储功能
 */
- (void)getChatRoomEntry:(NSString *)chatroomId
                     key:(NSString *)key
                 success:(void (^)(NSDictionary *entry))successBlock
                   error:(void (^)(RCErrorCode nErrorCode))errorBlock;

参数说明

参数 类型 必填 说明
chatroomId String 聊天室 Id
key String 聊天室属性名称

2、获取某聊天室中所有属性信息

/**
 获取聊天室所有自定义属性

 @param chatroomId 聊天室 Id
 @param successBlock 成功回调
 @param errorBlock 失败回调

 @discussion 必须先开通聊天室状态存储功能
 */
- (void)getAllChatRoomEntries:(NSString *)chatroomId
                      success:(void (^)(NSDictionary *entry))successBlock
                        error:(void (^)(RCErrorCode nErrorCode))errorBlock;

参数说明

参数 类型 必填 说明
chatroomId String 聊天室 Id

常见问题

聊天室集成常见问题,详细请参见文档