差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
|
im:android:basics:chatroom [2018/09/25 02:50] jk |
im:android:basics:chatroom [2022/03/11 10:28] (当前版本) jennifer.zeng [聊天室管理] |
||
|---|---|---|---|
| 行 1: | 行 1: | ||
| ====== 聊天室管理 ====== | ====== 聊天室管理 ====== | ||
| + | |||
| + | 更新时间:2021-12-31 | ||
| + | |||
| + | 新版文档见:[[ccim:android:chatroom1|聊天室]]。 | ||
| ---- | ---- | ||
| - | 环信聊天室模型支持最大成员数为5000,和群组不同,聊天室内成员离线后,服务器当监听到此成员不在线后不再会给此成员再发推送。 | + | 环信聊天室模型支持默认最大成员数为 5000,和群组不同,聊天室内成员离线后,服务器当监听到此成员不在线后不再会给此成员再发推送。聊天室成员数可调整,请联系商务。 |
| - | * 支持最大成员5000; | + | * 默认支持最大成员数 5000,调整请联系商务; |
| * 环信的聊天室内有所有者,管理员和游客三种身份; | * 环信的聊天室内有所有者,管理员和游客三种身份; | ||
| * 支持禁言,黑名单,踢人等操作; | * 支持禁言,黑名单,踢人等操作; | ||
| * 不支持客户端邀请; | * 不支持客户端邀请; | ||
| * 不支持 REST 邀请。 | * 不支持 REST 邀请。 | ||
| - | * 聊天室API通常是同步操作,需要在单独的线程中执行,如需使用异步API,请使用async前缀对应的API | + | * 聊天室 API 通常是同步操作,需要在单独的线程中执行,如需使用异步 API,请使用 async 前缀对应的 API |
| - | ===== 服务器端 ===== | + | |
| - | + | ||
| - | ==== 创建聊天室 ==== | + | |
| - | + | ||
| - | <code> | + | |
| - | curl -X POST “http://a1.easemob.com/easemob-demo/chatdemoui/chatrooms” -H “Authorization: Bearer ${token}” -d ‘{“owner”:”u1”,”members”:[“u1”,”u2”],”maxusers”:5000,”groupname”:”chatroom title”,”desc”:”chatroom description”}” | + | |
| - | </code> | + | |
| - | + | ||
| - | ==== 查询所有 APP 聊天室 ==== | + | |
| - | + | ||
| - | <code> | + | |
| - | curl -X GET “http://a1.easemob.com/easemob-demo/chatdemoui/chatrooms” -H “Authorization: Bearer ${token}” | + | |
| - | </code> | + | |
| - | + | ||
| - | ==== 查询聊天室详情 ==== | + | |
| - | + | ||
| - | <code> | + | |
| - | curl -X GET “http://a1.easemob.com/easemob-demo/chatdemoui/chatrooms/1430798028680235” -H “Authorization: Bearer ${token}” | + | |
| - | </code> | + | |
| - | + | ||
| - | ==== 聊天室踢人 ==== | + | |
| - | + | ||
| - | <code> | + | |
| - | curl -X DELETE ‘https://a1.easemob.com/easemob-demo/chatdemoui/chatrooms/1430798028680235/users/u2’ -H “Authorization: Bearer ${token}” | + | |
| - | </code> | + | |
| - | + | ||
| - | ==== 删除聊天室 ==== | + | |
| - | + | ||
| - | <code> | + | |
| - | curl -X DELETE ‘https://a1.easemob.com/easemob-demo/chatdemoui/chatrooms/143228117786605’ -H “Authorization: Bearer ${token}” | + | |
| - | </code> | + | |
| - | + | ||
| - | 更多服务器端 REST 操作请参考[[im:server:basics:chatroom|聊天室管理]]。 | + | |
| - | ===== 客户端 ===== | + | 环信聊天室客户端的主要特性包括: |
| * 支持查询所有 APP 聊天室; | * 支持查询所有 APP 聊天室; | ||
| 行 51: | 行 22: | ||
| * 加入聊天室; | * 加入聊天室; | ||
| * 退出聊天室; | * 退出聊天室; | ||
| - | * 客户端的 API 都是通过''EMChatroomManager(EMClient.getInstance().chatroomManager())''操作。 | + | * 客户端的 API 都是通过 ''EMChatroomManager(EMClient.getInstance().chatroomManager())'' 操作。 |
| + | |||
| + | ==== 服务器端API ==== | ||
| + | |||
| + | 服务器端聊天室有关的 REST 操作请参考[[im:server:basics:chatroom|聊天室管理]]。 | ||
| ==== 加入聊天室 ==== | ==== 加入聊天室 ==== | ||
| 行 203: | 行 178: | ||
| */ | */ | ||
| Map<String, Long> mutes = EMClient.getInstance().chatroomManager().fetchChatRoomMuteList(String chatRoomId, int pageNum, int pageSize); | Map<String, Long> mutes = EMClient.getInstance().chatroomManager().fetchChatRoomMuteList(String chatRoomId, int pageNum, int pageSize); | ||
| + | </code> | ||
| + | |||
| + | |||
| + | ==== 开启和关闭全员禁言 ==== | ||
| + | owner和管理员可以开启和关闭全员禁言。 | ||
| + | <code java> | ||
| + | /** | ||
| + | * \~chinese | ||
| + | * 禁言所有成员 | ||
| + | * @param chatRoomId | ||
| + | */ | ||
| + | public void muteAllMembers(final String chatRoomId, final EMValueCallBack<EMGroup> callBack) | ||
| + | | ||
| + | /** | ||
| + | * \~chinese | ||
| + | * 解除所有成员禁言 | ||
| + | * @param chatRoomId | ||
| + | */ | ||
| + | public void unmuteAllMembers(final String chatRoomId, final EMValueCallBack<EMGroup> callBack) | ||
| + | </code> | ||
| + | |||
| + | |||
| + | ==== 白名单管理 ==== | ||
| + | 可以将用户添加到白名单中,用户白名单在管理员开启了全员禁言时生效,可以允许白名单用户发出消息。 | ||
| + | 另外可以将用户移出白名单,检查自己是否在白名单中以及获取白名单列表。 | ||
| + | <code java> | ||
| + | /** | ||
| + | * \~chinese | ||
| + | * 添加用户到白名单 | ||
| + | * @param chatRoomId | ||
| + | * @param members 成员id列表 | ||
| + | */ | ||
| + | public void addToChatRoomWhiteList(final String chatRoomId, final List<String> members, final EMCallBack callBack) | ||
| + | |||
| + | /** | ||
| + | * \~chinese | ||
| + | * 将用户从白名单移除 | ||
| + | * @param chatRoomId | ||
| + | * @param members 成员id列表 | ||
| + | */ | ||
| + | public void removeFromChatRoomWhiteList(final String chatRoomId, final List<String> members, final EMCallBack callBack) | ||
| + | |||
| + | /** | ||
| + | * \~chinese | ||
| + | * 检查自己是否在白名单中 | ||
| + | * @param groupId 群组id | ||
| + | */ | ||
| + | public void checkIfInChatRoomWhiteList(final String chatRoomId, EMValueCallBack<Boolean> callBack) | ||
| + | |||
| + | /** | ||
| + | * \~chinese | ||
| + | * 从服务器获取白名单成员列表 | ||
| + | * @param groupId 群组id | ||
| + | */ | ||
| + | public void fetchChatRoomWhiteList(final String chatRoomId, final EMValueCallBack<List<String>> callBack) | ||
| </code> | </code> | ||
| 行 217: | 行 247: | ||
| List<String> adminList = chatroom.getAdminList(); | List<String> adminList = chatroom.getAdminList(); | ||
| </code> | </code> | ||
| + | ==== 分页获取聊天室成员 ==== | ||
| + | |||
| + | <code java> | ||
| + | /** | ||
| + | * \~chinese | ||
| + | * 获取聊天室成员列表, 获取最后一页成员列表时,EMCursorResult.getCursor()返回一个空字符串. | ||
| + | * @param chatRoomId | ||
| + | * @param cursor | ||
| + | * @param pageSize | ||
| + | * @return | ||
| + | * @throws HyphenateException | ||
| + | */ | ||
| + | public EMCursorResult<String> fetchChatRoomMembers(String chatRoomId, String cursor, int pageSize); | ||
| + | </code> | ||
| + | |||
| ==== 删除聊天室成员 ==== | ==== 删除聊天室成员 ==== | ||
| <code java> | <code java> | ||
| 行 251: | 行 296: | ||
| </code> | </code> | ||
| + | 也可以通过聊天室监听接口来获取聊天室公告的消息推送。见[[http://docs-im.easemob.com/im/android/basics/chatroom#注册聊天室监听 |注册聊天室监听]] | ||
| ==== 更新聊天室公告 ==== | ==== 更新聊天室公告 ==== | ||
| 行 260: | 行 306: | ||
| + | 也可以通过聊天室监听接口来获取聊天室公告的消息推送。见[[http://docs-im.easemob.com/im/android/basics/chatroom#注册聊天室监听 |注册聊天室监听]] | ||
| ==== 注册聊天室监听 ==== | ==== 注册聊天室监听 ==== | ||
| 行 295: | 行 342: | ||
| } | } | ||
| + | |||
| + | @Override | ||
| + | public void onWhiteListAdded(final String chatRoomId, final List<String> whitelist){ | ||
| + | | ||
| + | } | ||
| + | |||
| + | @Override | ||
| + | public void onWhiteListRemoved(final String chatRoomId, final List<String> whitelist) { | ||
| + | |||
| + | } | ||
| + | |||
| + | @Override | ||
| + | public void onAllMemberMuteStateChanged(final String chatRoomId, final boolean isMuted) { | ||
| + | | ||
| + | } | ||
| @Override | @Override | ||