差别
这里会显示出您选择的修订版和当前版本之间的差别。
后一修订版 | 前一修订版 | ||
im:android:basics:chatroom [2018/09/07 03:54] haozki 创建 |
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:100serverintegration:70chatroommgmt|聊天室管理]]。 | + | |
- | ===== 客户端 ===== | + | 环信聊天室客户端的主要特性包括: |
* 支持查询所有 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 | ||
行 327: | 行 389: | ||
<WRAP group> | <WRAP group> | ||
<WRAP half column> | <WRAP half column> | ||
- | 上一页:[[im:200androidclientintegration:70groupchat|群组管理]] | + | 上一页:[[im:android:basics:group|群组管理]] |
</WRAP> | </WRAP> | ||
<WRAP half column> | <WRAP half column> | ||
- | 下一页:[[im:200androidclientintegration:80audiovideo|实时通话]] | + | 下一页:[[im:android:basics:audiovideo|1V1实时通话]] |
</WRAP> | </WRAP> | ||
</WRAP> | </WRAP> |