public interface ChatRoomService
限定符和类型 | 方法和说明 |
---|---|
InvocationFuture<java.util.List<java.lang.String>> |
batchUpdateQueue(java.lang.String roomId,
java.util.List<Entry<java.lang.String,java.lang.String>> queues,
boolean needNotify,
java.util.Map<java.lang.String,java.lang.Object> notifyExt)
聊天室队列服务 : 批量更新元素
|
AbortableFuture<java.lang.Void> |
downloadAttachment(ChatRoomMessage msg,
boolean thumb)
正常情况收到消息后附件会自动下载。
|
InvocationFuture<java.lang.Void> |
dropQueue(java.lang.String roomId)
聊天室队列服务:删除队列
|
AbortableFuture<EnterChatRoomResultData> |
enterChatRoom(EnterChatRoomData roomData)
进入聊天室
|
AbortableFuture<EnterChatRoomResultData> |
enterChatRoomEx(EnterChatRoomData roomData,
int retryCount)
进入聊天室
|
void |
exitChatRoom(java.lang.String roomId)
离开聊天室
|
void |
exitChatRooms(ChatRoomModeEnum mode)
离开聊天室
|
InvocationFuture<java.util.List<Entry<java.lang.String,java.lang.String>>> |
fetchQueue(java.lang.String roomId)
聊天室队列服务:排序列出所有队列元素
|
InvocationFuture<ChatRoomInfo> |
fetchRoomInfo(java.lang.String roomId)
获取当前聊天室信息
|
InvocationFuture<java.util.List<ChatRoomMember>> |
fetchRoomMembers(java.lang.String roomId,
MemberQueryType memberQueryType,
long time,
int limit)
获取聊天室成员信息
|
InvocationFuture<java.util.List<ChatRoomMember>> |
fetchRoomMembersByIds(java.lang.String roomId,
java.util.List<java.lang.String> accounts)
根据用户id获取聊天室成员信息
|
InvocationFuture<java.util.List<ChatRoomMember>> |
fetchRoomMembersByTag(java.lang.String roomId,
java.lang.String tag,
long time,
int limit)
获取聊天室成员信息
|
int |
getEnterErrorCode(java.lang.String roomId)
获取进入聊天室失败的错误码
如果是手动登录,在enterChatRoom的回调函数中已有错误码。
|
InvocationFuture<java.util.List<ChatRoomMessage>> |
getMessagesByTags(GetMessagesByTagsParam param)
通过标签从云端拉取消息
|
InvocationFuture<java.lang.Void> |
kickMember(java.lang.String roomId,
java.lang.String account,
java.util.Map<java.lang.String,java.lang.Object> notifyExtension)
踢掉特定成员
|
InvocationFuture<ChatRoomMember> |
markChatRoomBlackList(boolean isAdd,
MemberOption memberOption)
添加/移出聊天室黑名单
|
InvocationFuture<ChatRoomMember> |
markChatRoomManager(boolean isAdd,
MemberOption memberOption)
设为/取消聊天室管理员
|
InvocationFuture<ChatRoomMember> |
markChatRoomMutedList(boolean isAdd,
MemberOption memberOption)
添加到禁言名单/取消禁言
|
InvocationFuture<java.lang.Void> |
markChatRoomTempMute(boolean needNotify,
long duration,
MemberOption memberOption)
设置聊天室成员临时禁言
|
InvocationFuture<java.lang.Void> |
markChatRoomTempMuteByTag(java.lang.String roomId,
java.lang.String targetTag,
boolean needNotify,
long duration,
java.util.Map<java.lang.String,java.lang.Object> notifyExtension,
java.lang.String notifyTargetTags)
禁言某个标签的用户的发言,只有管理员或创建者能操作
|
InvocationFuture<ChatRoomMember> |
markNormalMember(boolean isAdd,
MemberOption memberOption)
设为/取消聊天室普通成员
|
InvocationFuture<Entry<java.lang.String,java.lang.String>> |
pollQueue(java.lang.String roomId,
java.lang.String key)
聊天室队列服务:取出队列头部或者指定元素
|
InvocationFuture<java.util.List<NimRobotInfo>> |
pullAllRobots(java.lang.String roomId)
独立聊天室场景下,获取当前全部聊天室机器人
|
InvocationFuture<java.util.List<ChatRoomMessage>> |
pullMessageHistory(java.lang.String roomId,
long startTime,
int limit)
获取历史消息,默认从给定时间点往前查询,排序为时间逆序
|
InvocationFuture<java.util.List<ChatRoomMessage>> |
pullMessageHistoryEx(java.lang.String roomId,
long startTime,
int limit,
QueryDirectionEnum direction)
获取历史消息,可选择给定时间往前或者往后查询,若方向往前,则结果排序按时间逆序,反之则结果排序按时间顺序。
|
InvocationFuture<java.util.List<ChatRoomMessage>> |
pullMessageHistoryExType(java.lang.String roomId,
long startTime,
int limit,
QueryDirectionEnum direction,
MsgTypeEnum[] typeEnums)
获取历史消息,可选择给定时间往前或者往后查询,以及查询指定一种或多种类型的消息。
|
InvocationFuture<java.lang.Long> |
queryTagMembersCount(java.lang.String roomId,
java.lang.String tag)
根据用户id获取聊天室成员信息
|
InvocationFuture<java.lang.Void> |
sendMessage(ChatRoomMessage msg,
boolean resend)
发送消息
|
InvocationFuture<java.lang.Void> |
updateChatRoomTags(java.lang.String roomId,
ChatRoomTagsInfo tagsInfo)
更新聊天室标签
|
InvocationFuture<java.lang.Void> |
updateLocation(java.lang.String roomId,
ChatRoomSpatialLocation location)
更新位置信息
注意:每300ms只能上报一次位置信息给服务器,300ms 内多次调用返回 416
|
InvocationFuture<java.lang.Void> |
updateMyRoomRole(java.lang.String roomId,
ChatRoomMemberUpdate chatRoomMemberUpdate,
boolean needNotify,
java.util.Map<java.lang.String,java.lang.Object> notifyExtension)
更新本人在聊天室内的信息
|
InvocationFuture<java.lang.Void> |
updateMyRoomRole(java.lang.String roomId,
ChatRoomMemberUpdate chatRoomMemberUpdate,
boolean needNotify,
java.util.Map<java.lang.String,java.lang.Object> notifyExtension,
AntiSpamConfig antiSpamConfig)
更新本人在聊天室内的信息
|
InvocationFuture<java.lang.Void> |
updateQueue(java.lang.String roomId,
java.lang.String key,
java.lang.String value)
聊天室队列服务:加入或者更新队列元素
|
InvocationFuture<java.lang.Void> |
updateQueue(java.lang.String roomId,
java.lang.String key,
java.lang.String value,
boolean isTransient,
java.lang.String elementAccid)
聊天室队列服务:加入或者更新队列元素,支持当用户掉线或退出聊天室后,是否删除这个元素
|
InvocationFuture<java.lang.Void> |
updateQueueEx(java.lang.String roomId,
java.lang.String key,
java.lang.String value,
boolean isTransient)
聊天室队列服务:加入或者更新队列元素,支持当用户掉线或退出聊天室后,是否删除这个元素
|
InvocationFuture<java.lang.Void> |
updateRoomInfo(java.lang.String roomId,
ChatRoomUpdateInfo chatRoomUpdateInfo,
boolean needNotify,
java.util.Map<java.lang.String,java.lang.Object> notifyExtension)
更新聊天室信息
|
InvocationFuture<java.lang.Void> |
updateRoomInfo(java.lang.String roomId,
ChatRoomUpdateInfo chatRoomUpdateInfo,
boolean needNotify,
java.util.Map<java.lang.String,java.lang.Object> notifyExtension,
AntiSpamConfig antiSpamConfig)
更新聊天室信息
|
AbortableFuture<EnterChatRoomResultData> enterChatRoom(EnterChatRoomData roomData)
roomData
- 聊天室基本数据(聊天室ID必填)AbortableFuture<EnterChatRoomResultData> enterChatRoomEx(EnterChatRoomData roomData, int retryCount)
roomData
- 聊天室基本数据(聊天室ID必填)retryCount
- 如果进入失败,重试次数int getEnterErrorCode(java.lang.String roomId)
roomId
- 聊天室IDvoid exitChatRoom(java.lang.String roomId)
roomId
- 聊天室IDvoid exitChatRooms(ChatRoomModeEnum mode)
mode
- 聊天室类型InvocationFuture<java.lang.Void> sendMessage(ChatRoomMessage msg, boolean resend)
msg
- 带发送的消息体,由ChatRoomMessageBuilder
构造。resend
- 如果是发送失败后重发,标记为true,否则填false。AbortableFuture<java.lang.Void> downloadAttachment(ChatRoomMessage msg, boolean thumb)
msg
- 附件所在的消息体thumb
- 下载缩略图还是原文件。为true时,仅下载缩略图。InvocationFuture<java.util.List<ChatRoomMessage>> pullMessageHistory(java.lang.String roomId, long startTime, int limit)
roomId
- 聊天室idstartTime
- 时间戳,单位毫秒limit
- 可拉取的消息数量InvocationFuture<java.util.List<ChatRoomMessage>> pullMessageHistoryEx(java.lang.String roomId, long startTime, int limit, QueryDirectionEnum direction)
roomId
- 聊天室idstartTime
- 时间戳,单位毫秒limit
- 可拉取的消息数量direction
- 查询方向InvocationFuture<java.util.List<ChatRoomMessage>> pullMessageHistoryExType(java.lang.String roomId, long startTime, int limit, QueryDirectionEnum direction, MsgTypeEnum[] typeEnums)
若方向往前,则结果排序按时间逆序,反之则结果排序按时间顺序
消息类型仅支持 0:文本,1:图片,2:语音,3:视频,4:地理位置,5:通知,6:文件,10:提示,11:Robot,100:自定义,其它为非法参数
roomId
- 聊天室idstartTime
- 时间戳,单位毫秒limit
- 可拉取的消息数量direction
- 查询方向typeEnums
- 消息类型,数组InvocationFuture<java.util.List<ChatRoomMessage>> getMessagesByTags(GetMessagesByTagsParam param)
param
- 参数InvocationFuture<ChatRoomInfo> fetchRoomInfo(java.lang.String roomId)
roomId
- 聊天室idInvocationFuture<java.util.List<ChatRoomMember>> fetchRoomMembers(java.lang.String roomId, MemberQueryType memberQueryType, long time, int limit)
roomId
- 聊天室idmemberQueryType
- 成员查询类型。见MemberQueryType
time
- 固定成员列表用updateTime,
游客列表用进入enterTime,
填0会使用当前服务器最新时间开始查询,即第一页,单位毫秒limit
- 条数限制InvocationFuture<java.util.List<ChatRoomMember>> fetchRoomMembersByTag(java.lang.String roomId, java.lang.String tag, long time, int limit)
roomId
- 聊天室idtag
- 标签time
- 起始时间,逆序查询,若传0则表示从当前时间往前查limit
- 条数InvocationFuture<java.util.List<ChatRoomMember>> fetchRoomMembersByIds(java.lang.String roomId, java.util.List<java.lang.String> accounts)
roomId
- 聊天室idaccounts
- 成员帐号列表InvocationFuture<java.lang.Long> queryTagMembersCount(java.lang.String roomId, java.lang.String tag)
roomId
- 聊天室idtag
- 标签InvocationFuture<ChatRoomMember> markChatRoomBlackList(boolean isAdd, MemberOption memberOption)
isAdd
- true:添加, false:移出memberOption
- 请求参数,包含聊天室id,帐号id以及可选的扩展字段InvocationFuture<ChatRoomMember> markChatRoomMutedList(boolean isAdd, MemberOption memberOption)
isAdd
- true:添加, false:取消memberOption
- 请求参数,包含聊天室id,帐号id以及可选的扩展字段InvocationFuture<java.lang.Void> markChatRoomTempMute(boolean needNotify, long duration, MemberOption memberOption)
needNotify
- 是否需要发送广播通知,true:通知,false:不通知duration
- 禁言时长,单位秒memberOption
- 请求参数,包含聊天室id,帐号id以及可选的扩展字段InvocationFuture<java.lang.Void> markChatRoomTempMuteByTag(java.lang.String roomId, java.lang.String targetTag, boolean needNotify, long duration, java.util.Map<java.lang.String,java.lang.Object> notifyExtension, java.lang.String notifyTargetTags)
roomId
- 聊天室idtargetTag
- 禁言的tagneedNotify
- 是否需要发送广播通知,true:通知,false:不通知duration
- 禁言时长,单位秒notifyExtension
- 操作产生的通知事件中开发者自定义的扩展字段(可选)notifyTargetTags
- 禁言通知广播的目标标签,默认是TARGET_TAG,这是一个标签表达式InvocationFuture<ChatRoomMember> markChatRoomManager(boolean isAdd, MemberOption memberOption)
isAdd
- true:设为, false:取消memberOption
- 请求参数,包含聊天室id,帐号id以及可选的扩展字段InvocationFuture<ChatRoomMember> markNormalMember(boolean isAdd, MemberOption memberOption)
isAdd
- true:设为, false:取消memberOption
- 请求参数,包含聊天室id,帐号id以及可选的扩展字段InvocationFuture<java.lang.Void> kickMember(java.lang.String roomId, java.lang.String account, java.util.Map<java.lang.String,java.lang.Object> notifyExtension)
roomId
- 聊天室idaccount
- 踢出成员帐号。仅管理员可以踢;如目标是管理员仅创建者可以踢notifyExtension
- 被踢通知扩展字段,这个字段会放到被踢通知的扩展字段中InvocationFuture<java.lang.Void> updateRoomInfo(java.lang.String roomId, ChatRoomUpdateInfo chatRoomUpdateInfo, boolean needNotify, java.util.Map<java.lang.String,java.lang.Object> notifyExtension)
roomId
- 聊天室idchatRoomUpdateInfo
- 可更新的聊天室信息needNotify
- 是否通知notifyExtension
- 更新聊天室信息扩展字段,这个字段会放到更新聊天室信息通知的扩展字段中InvocationFuture<java.lang.Void> updateRoomInfo(java.lang.String roomId, ChatRoomUpdateInfo chatRoomUpdateInfo, boolean needNotify, java.util.Map<java.lang.String,java.lang.Object> notifyExtension, AntiSpamConfig antiSpamConfig)
roomId
- 聊天室idchatRoomUpdateInfo
- 可更新的聊天室信息needNotify
- 是否通知notifyExtension
- 更新聊天室信息扩展字段,这个字段会放到更新聊天室信息通知的扩展字段中antiSpamConfig
- 反垃圾配置参数InvocationFuture<java.lang.Void> updateMyRoomRole(java.lang.String roomId, ChatRoomMemberUpdate chatRoomMemberUpdate, boolean needNotify, java.util.Map<java.lang.String,java.lang.Object> notifyExtension)
roomId
- 聊天室idchatRoomMemberUpdate
- 可更新的本人角色信息needNotify
- 是否通知notifyExtension
- 更新聊天室信息扩展字段,这个字段会放到更新聊天室信息通知的扩展字段中,最大长度2kInvocationFuture<java.lang.Void> updateMyRoomRole(java.lang.String roomId, ChatRoomMemberUpdate chatRoomMemberUpdate, boolean needNotify, java.util.Map<java.lang.String,java.lang.Object> notifyExtension, AntiSpamConfig antiSpamConfig)
roomId
- 聊天室idchatRoomMemberUpdate
- 可更新的本人角色信息needNotify
- 是否通知notifyExtension
- 更新聊天室信息扩展字段,这个字段会放到更新聊天室信息通知的扩展字段中,最大长度2kantiSpamConfig
- 反垃圾配置参数InvocationFuture<java.lang.Void> updateQueue(java.lang.String roomId, java.lang.String key, java.lang.String value)
roomId
- 聊天室idkey
- 新元素(或待更新元素)的唯一键value
- 新元素(待待更新元素)的内容InvocationFuture<java.lang.Void> updateQueueEx(java.lang.String roomId, java.lang.String key, java.lang.String value, boolean isTransient)
roomId
- 聊天室idkey
- 新元素(或待更新元素)的唯一键value
- 新元素(待待更新元素)的内容isTransient
- true表示当提交这个新元素的用户从聊天室掉线或退出的时候,需要删除这个元素;默认false表示不删除InvocationFuture<java.lang.Void> updateQueue(java.lang.String roomId, java.lang.String key, java.lang.String value, boolean isTransient, java.lang.String elementAccid)
roomId
- 聊天室idkey
- 新元素(或待更新元素)的唯一键value
- 新元素(待待更新元素)的内容isTransient
- true表示当提交这个新元素的用户从聊天室掉线或退出的时候,需要删除这个元素;默认false表示不删除elementAccid
- 队列元素所属账号,默认不传表示队列元素属于当前操作人,管理员可以指定队列元素归属于其他合法账号InvocationFuture<java.util.List<java.lang.String>> batchUpdateQueue(java.lang.String roomId, java.util.List<Entry<java.lang.String,java.lang.String>> queues, boolean needNotify, java.util.Map<java.lang.String,java.lang.Object> notifyExt)
roomId
- 聊天室idqueues
- 待更新的队列元素needNotify
- 是否需要发送广播通知notifyExt
- 通知中的自定义字段 , 最大长度2kInvocationFuture<Entry<java.lang.String,java.lang.String>> pollQueue(java.lang.String roomId, java.lang.String key)
roomId
- 聊天室idkey
- 需要取出的元素的唯一键。若为 null,则表示取出队头元素InvocationFuture<java.util.List<Entry<java.lang.String,java.lang.String>>> fetchQueue(java.lang.String roomId)
roomId
- 聊天室idInvocationFuture<java.lang.Void> dropQueue(java.lang.String roomId)
roomId
- 聊天室idInvocationFuture<java.util.List<NimRobotInfo>> pullAllRobots(java.lang.String roomId)
roomId
- 当前聊天室idInvocationFuture<java.lang.Void> updateChatRoomTags(java.lang.String roomId, ChatRoomTagsInfo tagsInfo)
roomId
- 当前聊天室idtagsInfo
- 标签信息InvocationFuture<java.lang.Void> updateLocation(java.lang.String roomId, ChatRoomSpatialLocation location)
roomId
- 当前聊天室idlocation
- 空间位置信息