跳转至

聊天室

提示

聊天室消息不会保存到本地数据库,服务端最多保存聊天室最近的50条消息。在调用加入聊天室接口时可以设置进入聊天室时的拉取消息数量。

加入聊天室

参数说明:

参数 类型 必填 说明
chatRoomId String 聊天室 Id
defMessageCount int 进入聊天室拉取消息数目,-1 时不拉取任何消息,0 时拉取 10 条消息,最多只能拉取 50 条
callback OperationCallback 状态回调

代码示例:

public void joinChatRoom(final String chatRoomId, final int defMessageCount, final OperationCallback callback)
加入已经存在的聊天室

参数说明:

参数 类型 必填 说明
chatRoomId String 聊天室 Id
defMessageCount int 进入聊天室拉取消息数目,-1 时不拉取任何消息,0 时拉取 10 条消息,最多只能拉取 50 条
callback OperationCallback 状态回调

代码示例:

public void joinExistChatRoom(final String chatRoomId, final int defMessageCount, final OperationCallback callback)

提示

  1. joinChatRoom 方法加入聊天室。聊天室不存在,sdk 会创建聊天室并加入,已存在,则直接加入。
  2. joinExistChatRoom 方法加入已存在的聊天室。聊天室不存在,则加入失败。

退出聊天室

参数说明:

参数 类型 必填 说明
chatRoomId String 聊天室 Id
callback OperationCallback 状态回调

代码示例:

public void quitChatRoom(final String chatRoomId, final OperationCallback callback)

查询聊天室信息

参数说明:

参数 类型 必填 说明
chatRoomId String 聊天室 Id
defMessageCount int 进入聊天室拉成员数目,最多 20 条
order ChatRoomInfo.ChatRoomMemberOrder 聊天室成员信息顺序。升序, 返回最早加入的用户列表; 降序, 返回最晚加入的用户列表
callback OperationCallback 状态回调

代码示例:

public void getChatRoomInfo(final String chatRoomId, final int defMemberCount, final ChatRoomInfo.ChatRoomMemberOrder order, final ResultCallback<ChatRoomInfo> callback)

获取历史消息

提示

此方法从服务器端获取聊天室之前的历史消息,但是必须先开通聊天室消息云存储功能。

参数说明:

参数 类型 必填 说明
targetId String 目标 Id。根据不同的 conversationType,可能是用户 Id、群组 Id
recordTime long 起始的消息发送时间戳,单位: 毫秒
count int 返回聊天室成员信息顺序。升序, 最早加入的用户列表; 降序, 返回最晚加入的用户列表
order TimestampOrder 拉取顺序: 降序, 时间戳从大到小排序; 升序, 按照时间戳从小到大排序
callback OperationCallback 状态回调

代码示例:

public void getChatroomHistoryMessages(final String targetId, final long recordTime, final int count, final TimestampOrder order, final IRongCallback.IChatRoomHistoryMessageCallback callback)

聊天室属性自定义

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

应用场景

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

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

警告

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

聊天室销毁后,聊天室中的自定义属性同时销毁。

设置属性

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

setChatroomEntry(String key, String value, String chatroomId, Boolean sendNotification, String notificationExtra, ResultCallback<Boolean> callback)

参数说明:

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

强制设置属性

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

forceSetChatroomEntry(String key, String value, String chatroomId, Boolean sendNotification, String notificationExtra, ResultCallback<Boolean> callback)

参数说明:

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

删除属性

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

removeChatroomEntry(String chatroomId, String key, Boolean sendNotification, String notificationExtra, ResultCallback<Boolean> callback)

参数说明

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

强制删除属性

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

forceRemoveChatroomEntry(String chatroomId, String key, Boolean sendNotification, String notificationExtra, ResultCallback<Boolean> callback)

参数说明

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

获取属性

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

getChatroomEntry(String chatroomId, String key, ResultCallback<Entry<String,String>> callback)

参数说明

参数 类型 必填 说明
chatroomId String 聊天室 Id
key String 聊天室属性名称
callback ResultCallback 获取后回调

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

getAllChatroomEntries(String chatroomId, ResultCallback<List<Entry<String,String>>> callback)

参数说明

参数 类型 必填 说明
chatroomId String 聊天室 Id
callback ResultCallback 获取后回调

常见问题

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