差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
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