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