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