NIMSDK-AOS  9.19.0
ChatRoomService.java
浏览该文件的文档.
1 package com.netease.nimlib.sdk.chatroom;
2 
3 import androidx.annotation.NonNull;
4 
5 import com.netease.nimlib.apt.annotation.NIMService;
26 
27 import java.util.List;
28 import java.util.Map;
29 
30 /**
31  * 聊天室接口
32  */
33 @NIMService("聊天室服务")
34 public interface ChatRoomService {
35  /**
36  * 进入聊天室
37  *
38  * @param roomData 聊天室基本数据(聊天室ID必填)
39  * @return InvocationFuture 可取消的回调函数。回调中返回聊天室基本信息
40  */
42 
43  /**
44  * 进入聊天室
45  *
46  * @param roomData 聊天室基本数据(聊天室ID必填)
47  * @param retryCount 如果进入失败,重试次数
48  * @return InvocationFuture 可取消的回调函数。回调中返回聊天室基本信息
49  */
50  AbortableFuture<EnterChatRoomResultData> enterChatRoomEx(EnterChatRoomData roomData, int retryCount);
51 
52  /**
53  * 获取进入聊天室失败的错误码
54  * 如果是手动登录,在enterChatRoom的回调函数中已有错误码。
55  * 如果是断网重连,在自动登录失败时,即监听到在线状态变更为UNLOGIN时,可以采用此接口查看具体自动登录失败的原因。
56  *
57  * @param roomId 聊天室ID
58  * @return 聊天室断网重连、自动登录失败的错误码
59  */
60  int getEnterErrorCode(String roomId);
61 
62  /**
63  * 离开聊天室
64  *
65  * @param roomId 聊天室ID
66  */
67  void exitChatRoom(String roomId);
68 
69  /**
70  * 离开聊天室
71  *
72  * @param mode 聊天室类型
73  */
74  void exitChatRooms(ChatRoomModeEnum mode);
75 
76  /**
77  * 发送消息
78  *
79  * @param msg 带发送的消息体,由{@link ChatRoomMessageBuilder}构造。
80  * @param resend 如果是发送失败后重发,标记为true,否则填false。
81  * @return InvocationFuture 可以设置回调函数。消息发送完成后才会调用,如果出错,会有具体的错误代码。
82  */
83  InvocationFuture<Void> sendMessage(ChatRoomMessage msg, boolean resend);
84 
85 
86  /**
87  * 正常情况收到消息后附件会自动下载。如果下载失败,可调用该接口重新下载。
88  *
89  * @param msg 附件所在的消息体
90  * @param thumb 下载缩略图还是原文件。为true时,仅下载缩略图。<br>
91  * 该参数仅对图片和视频类消息有效
92  * @return AbortableFuture 调用跟踪。可设置回调函数,可中止下载操作
93  */
94  AbortableFuture<Void> downloadAttachment(ChatRoomMessage msg, boolean thumb);
95 
96  /**
97  * 获取历史消息,默认从给定时间点往前查询,排序为时间逆序
98  *
99  * @param roomId 聊天室id
100  * @param startTime 时间戳,单位毫秒
101  * @param limit 可拉取的消息数量
102  * @return InvocationFuture 可以设置回调函数。回调中返回历史消息列表
103  */
104  InvocationFuture<List<ChatRoomMessage>> pullMessageHistory(String roomId, long startTime, int limit);
105 
106  /**
107  * 获取历史消息,可选择给定时间往前或者往后查询,若方向往前,则结果排序按时间逆序,反之则结果排序按时间顺序。
108  *
109  * @param roomId 聊天室id
110  * @param startTime 时间戳,单位毫秒
111  * @param limit 可拉取的消息数量
112  * @param direction 查询方向
113  * @return InvocationFuture 可以设置回调函数。回调中返回历史消息列表
114  */
115  InvocationFuture<List<ChatRoomMessage>> pullMessageHistoryEx(String roomId, long startTime, int limit, QueryDirectionEnum direction);
116 
117 
118  /**
119  * 获取历史消息,可选择给定时间往前或者往后查询,以及查询指定一种或多种类型的消息。
120  * <p>
121  * 若方向往前,则结果排序按时间逆序,反之则结果排序按时间顺序
122  * <p>
123  * 消息类型仅支持 0:文本,1:图片,2:语音,3:视频,4:地理位置,5:通知,6:文件,10:提示,11:Robot,100:自定义,其它为非法参数
124  *
125  * @param roomId 聊天室id
126  * @param startTime 时间戳,单位毫秒
127  * @param limit 可拉取的消息数量
128  * @param direction 查询方向
129  * @param typeEnums 消息类型,数组
130  * @return InvocationFuture 可以设置回调函数。回调中返回历史消息列表
131  */
132  InvocationFuture<List<ChatRoomMessage>> pullMessageHistoryExType(String roomId, long startTime, int limit, QueryDirectionEnum direction, MsgTypeEnum[] typeEnums);
133 
134  /**
135  * 通过标签从云端拉取消息
136  * @param param 参数
137  * @return InvocationFuture 可以设置回调函数。回调中返回历史消息列表
138  */
140 
141  /**
142  * 获取当前聊天室信息
143  *
144  * @param roomId 聊天室id
145  * @return InvocationFuture 可以设置回调函数。回调中返回聊天室的信息
146  */
147  InvocationFuture<ChatRoomInfo> fetchRoomInfo(String roomId);
148 
149  /**
150  * 获取聊天室成员信息
151  *
152  * @param roomId 聊天室id
153  * @param memberQueryType 成员查询类型。见{@link MemberQueryType}
154  * @param time 固定成员列表用updateTime,
155  * 游客列表用进入enterTime,
156  * 填0会使用当前服务器最新时间开始查询,即第一页,单位毫秒
157  * @param limit 条数限制
158  * @return InvocationFuture 可以设置回调函数。回调中返回成员信息列表
159  */
160  InvocationFuture<List<ChatRoomMember>> fetchRoomMembers(String roomId, MemberQueryType memberQueryType, long time, int limit);
161 
162  /**
163  * 获取聊天室成员信息
164  *
165  * @param roomId 聊天室id
166  * @param tag 标签
167  * @param time 起始时间,逆序查询,若传0则表示从当前时间往前查
168  * @param limit 条数
169  * @return InvocationFuture 可以设置回调函数。回调中返回成员信息列表
170  */
171  InvocationFuture<List<ChatRoomMember>> fetchRoomMembersByTag(String roomId, String tag, long time, int limit);
172 
173  /**
174  * 根据用户id获取聊天室成员信息
175  *
176  * @param roomId 聊天室id
177  * @param accounts 成员帐号列表
178  * @return InvocationFuture 可以设置回调函数。回调中返回成员信息列表
179  */
180  InvocationFuture<List<ChatRoomMember>> fetchRoomMembersByIds(String roomId, List<String> accounts);
181 
182  /**
183  * 根据用户id获取聊天室成员信息
184  *
185  * @param roomId 聊天室id
186  * @param tag 标签
187  * @return InvocationFuture 可以设置回调函数。回调中返回成员信息列表
188  */
189  InvocationFuture<Long> queryTagMembersCount(String roomId, String tag);
190 
191  /**
192  * 添加/移出聊天室黑名单
193  *
194  * @param isAdd true:添加, false:移出
195  * @param memberOption 请求参数,包含聊天室id,帐号id以及可选的扩展字段
196  * @return InvocationFuture 可以设置回调函数。回调中返回成员信息
197  */
198  InvocationFuture<ChatRoomMember> markChatRoomBlackList(boolean isAdd, MemberOption memberOption);
199 
200  /**
201  * 添加到禁言名单/取消禁言
202  *
203  * @param isAdd true:添加, false:取消
204  * @param memberOption 请求参数,包含聊天室id,帐号id以及可选的扩展字段
205  * @return InvocationFuture 可以设置回调函数。回调中返回成员信息
206  */
207  InvocationFuture<ChatRoomMember> markChatRoomMutedList(boolean isAdd, MemberOption memberOption);
208 
209  /**
210  * 设置聊天室成员临时禁言
211  *
212  * @param needNotify 是否需要发送广播通知,true:通知,false:不通知
213  * @param duration 禁言时长,单位秒
214  * @param memberOption 请求参数,包含聊天室id,帐号id以及可选的扩展字段
215  * @return InvocationFuture 可以设置回调函数。如果出错,会有具体的错误代码。
216  */
217  InvocationFuture<Void> markChatRoomTempMute(boolean needNotify, long duration, MemberOption memberOption);
218 
219  /**
220  * 禁言某个标签的用户的发言,只有管理员或创建者能操作
221  *
222  * @param roomId 聊天室id
223  * @param targetTag 禁言的tag
224  * @param needNotify 是否需要发送广播通知,true:通知,false:不通知
225  * @param duration 禁言时长,单位秒
226  * @param notifyExtension 操作产生的通知事件中开发者自定义的扩展字段(可选)
227  * @param notifyTargetTags 禁言通知广播的目标标签,默认是TARGET_TAG,这是一个标签表达式
228  * @return InvocationFuture 可以设置回调函数。如果出错,会有具体的错误代码。
229  */
230  InvocationFuture<Void> markChatRoomTempMuteByTag(String roomId, String targetTag, boolean needNotify, long duration, Map<String, Object> notifyExtension, String notifyTargetTags);
231 
232  /**
233  * 设为/取消聊天室管理员
234  *
235  * @param isAdd true:设为, false:取消
236  * @param memberOption 请求参数,包含聊天室id,帐号id以及可选的扩展字段
237  * @return InvocationFuture 可以设置回调函数。回调中返回成员信息
238  */
239  InvocationFuture<ChatRoomMember> markChatRoomManager(boolean isAdd, MemberOption memberOption);
240 
241  /**
242  * 设为/取消聊天室普通成员
243  *
244  * @param isAdd true:设为, false:取消
245  * @param memberOption 请求参数,包含聊天室id,帐号id以及可选的扩展字段
246  * @return InvocationFuture 可以设置回调函数。回调中返回成员信息
247  */
248  InvocationFuture<ChatRoomMember> markNormalMember(boolean isAdd, MemberOption memberOption);
249 
250  /**
251  * 踢掉特定成员
252  *
253  * @param roomId 聊天室id
254  * @param account 踢出成员帐号。仅管理员可以踢;如目标是管理员仅创建者可以踢
255  * @param notifyExtension 被踢通知扩展字段,这个字段会放到被踢通知的扩展字段中
256  * @return InvocationFuture 可以设置回调函数。踢掉成员完成之后才会调用,如果出错,会有具体的错误代码。
257  */
258  InvocationFuture<Void> kickMember(String roomId, String account, Map<String, Object> notifyExtension);
259 
260  /**
261  * 更新聊天室信息
262  *
263  * @param roomId 聊天室id
264  * @param chatRoomUpdateInfo 可更新的聊天室信息
265  * @param needNotify 是否通知
266  * @param notifyExtension 更新聊天室信息扩展字段,这个字段会放到更新聊天室信息通知的扩展字段中
267  * @return InvocationFuture 可以设置回调函数。更新聊天室信息完成之后才会调用,如果出错,会有具体的错误代码。
268  */
269  InvocationFuture<Void> updateRoomInfo(String roomId, ChatRoomUpdateInfo chatRoomUpdateInfo, boolean needNotify, Map<String, Object> notifyExtension);
270 
271  /**
272  * 更新聊天室信息
273  *
274  * @param roomId 聊天室id
275  * @param chatRoomUpdateInfo 可更新的聊天室信息
276  * @param needNotify 是否通知
277  * @param notifyExtension 更新聊天室信息扩展字段,这个字段会放到更新聊天室信息通知的扩展字段中
278  * @param antiSpamConfig 反垃圾配置参数
279  * @return InvocationFuture 可以设置回调函数。更新聊天室信息完成之后才会调用,如果出错,会有具体的错误代码。
280  */
281  InvocationFuture<Void> updateRoomInfo(String roomId, ChatRoomUpdateInfo chatRoomUpdateInfo, boolean needNotify, Map<String, Object> notifyExtension,
282  AntiSpamConfig antiSpamConfig);
283 
284  /**
285  * 更新本人在聊天室内的信息
286  *
287  * @param roomId 聊天室id
288  * @param chatRoomMemberUpdate 可更新的本人角色信息
289  * @param needNotify 是否通知
290  * @param notifyExtension 更新聊天室信息扩展字段,这个字段会放到更新聊天室信息通知的扩展字段中,最大长度2k
291  * @return InvocationFuture 可以设置回调函数。更新信息完成之后才会调用,如果出错,会有具体的错误代码。
292  */
293  InvocationFuture<Void> updateMyRoomRole(String roomId, ChatRoomMemberUpdate chatRoomMemberUpdate, boolean needNotify, Map<String, Object> notifyExtension);
294 
295  /**
296  * 更新本人在聊天室内的信息
297  *
298  * @param roomId 聊天室id
299  * @param chatRoomMemberUpdate 可更新的本人角色信息
300  * @param needNotify 是否通知
301  * @param notifyExtension 更新聊天室信息扩展字段,这个字段会放到更新聊天室信息通知的扩展字段中,最大长度2k
302  * @param antiSpamConfig 反垃圾配置参数
303  * @return InvocationFuture 可以设置回调函数。更新信息完成之后才会调用,如果出错,会有具体的错误代码。
304  */
305  InvocationFuture<Void> updateMyRoomRole(String roomId, ChatRoomMemberUpdate chatRoomMemberUpdate, boolean needNotify, Map<String, Object> notifyExtension,AntiSpamConfig antiSpamConfig);
306 
307  /**
308  * 聊天室队列服务:加入或者更新队列元素
309  *
310  * @param roomId 聊天室id
311  * @param key 新元素(或待更新元素)的唯一键
312  * @param value 新元素(待待更新元素)的内容
313  * @return InvocationFuture 可以设置回调函数。回调中返回操作成功或者失败具体的错误码。
314  */
315  InvocationFuture<Void> updateQueue(String roomId, String key, String value);
316 
317  /**
318  * 聊天室队列服务:加入或者更新队列元素,支持当用户掉线或退出聊天室后,是否删除这个元素
319  *
320  * @param roomId 聊天室id
321  * @param key 新元素(或待更新元素)的唯一键
322  * @param value 新元素(待待更新元素)的内容
323  * @param isTransient true表示当提交这个新元素的用户从聊天室掉线或退出的时候,需要删除这个元素;默认false表示不删除
324  * @return InvocationFuture 可以设置回调函数。回调中返回操作成功或者失败具体的错误码。
325  */
326  InvocationFuture<Void> updateQueueEx(String roomId, String key, String value, boolean isTransient);
327 
328  /**
329  * 聊天室队列服务:加入或者更新队列元素,支持当用户掉线或退出聊天室后,是否删除这个元素
330  *
331  * @param roomId 聊天室id
332  * @param key 新元素(或待更新元素)的唯一键
333  * @param value 新元素(待待更新元素)的内容
334  * @param isTransient true表示当提交这个新元素的用户从聊天室掉线或退出的时候,需要删除这个元素;默认false表示不删除
335  * @param elementAccid 队列元素所属账号,默认不传表示队列元素属于当前操作人,管理员可以指定队列元素归属于其他合法账号
336  * @return InvocationFuture 可以设置回调函数。回调中返回操作成功或者失败具体的错误码。
337  */
338  InvocationFuture<Void> updateQueue(String roomId, String key, String value, boolean isTransient, String elementAccid);
339 
340 
341  /**
342  * 聊天室队列服务 : 批量更新元素
343  *
344  * @param roomId 聊天室id
345  * @param queues 待更新的队列元素
346  * @param needNotify 是否需要发送广播通知
347  * @param notifyExt 通知中的自定义字段 , 最大长度2k
348  * @return 不存在的元素elementKey列表
349  */
350  InvocationFuture<List<String>> batchUpdateQueue(String roomId, List<Entry<String, String>> queues, boolean needNotify, Map<String, Object> notifyExt);
351 
352  /**
353  * 聊天室队列服务:取出队列头部或者指定元素
354  *
355  * @param roomId 聊天室id
356  * @param key 需要取出的元素的唯一键。若为 null,则表示取出队头元素
357  * @return InvocationFuture 可以设置回调函数。如果元素存在或者队列不为空,那么回调中返回元素的键值对,否则返回失败错误码。
358  */
359  InvocationFuture<Entry<String, String>> pollQueue(String roomId, String key);
360 
361  /**
362  * 聊天室队列服务:排序列出所有队列元素
363  *
364  * @param roomId 聊天室id
365  * @return InvocationFuture 可设置回调函数。回调中返回所有排列的队列元素键值对。
366  */
367  InvocationFuture<List<Entry<String, String>>> fetchQueue(String roomId);
368 
369  /**
370  * 聊天室队列服务:删除队列
371  *
372  * @param roomId 聊天室id
373  * @return InvocationFuture 可设置回调函数。回调中返回操作成功或者失败具体的错误码。
374  */
375  InvocationFuture<Void> dropQueue(String roomId);
376 
377  /**
378  * 独立聊天室场景下,获取当前全部聊天室机器人
379  *
380  * @param roomId 当前聊天室id
381  * @return InvocationFuture 可设置回调函数。回调中返回操作成功或者失败具体的错误码。
382  */
383  InvocationFuture<List<NimRobotInfo>> pullAllRobots(String roomId);
384 
385  /**
386  * 更新聊天室标签
387  * @param roomId 当前聊天室id
388  * @param tagsInfo 标签信息
389  * @return
390  */
391  InvocationFuture<Void> updateChatRoomTags(String roomId, ChatRoomTagsInfo tagsInfo);
392 
393  /**
394  * 更新位置信息
395  * 注意:每300ms只能上报一次位置信息给服务器,300ms 内多次调用返回 416
396  * @param roomId 当前聊天室id
397  * @param location 空间位置信息
398  * @return
399  */
400  InvocationFuture<Void> updateLocation(String roomId, ChatRoomSpatialLocation location);
401 }
可中断操作的调用跟踪接口。
分页获取成员查询类型 Created by hzxuwen on 2016/1/25.
可序列化的键值对
Definition: Entry.java:9