差别

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

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
后一修订版 两侧同时换到之后的修订记录
im:android:basics:chatroom [2020/02/08 04:00]
jliu
im:android:basics:chatroom [2020/06/09 07:12]
zhaoliang [删除聊天室成员]
行 11: 行 11:
   * 不支持 REST 邀请。   * 不支持 REST 邀请。
   * 聊天室API通常是同步操作,需要在单独的线程中执行,如需使用异步API,请使用async前缀对应的API   * 聊天室API通常是同步操作,需要在单独的线程中执行,如需使用异步API,请使用async前缀对应的API
-==== 服务器端 ==== 
  
-[[start:​100serverintegration:​70chatroommgmt|通过REST管理聊天室]]。 +环信聊天室客户端的主要特性包括:
- +
-==== 创建聊天室 ==== +
- +
-<​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 聊天室;
行 54: 行 19:
   * 退出聊天室;   * 退出聊天室;
   * 客户端的 API 都是通过''​EMChatroomManager(EMClient.getInstance().chatroomManager())''​操作。   * 客户端的 API 都是通过''​EMChatroomManager(EMClient.getInstance().chatroomManager())''​操作。
 +
 +==== 服务器端API ====
 +
 +服务器端聊天室有关的 REST 操作请参考[[im:​server:​basics:​chatroom|聊天室管理]]。
  
 ==== 加入聊天室 ==== ==== 加入聊天室 ====
行 205: 行 174:
  */  */
 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>​
  
行 219: 行 243:
 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>
行 253: 行 292:
 </​code>​ </​code>​
  
 +也可以通过聊天室监听接口来获取聊天室公告的消息推送。见[[http://​docs-im.easemob.com/​im/​android/​basics/​chatroom#​注册聊天室监听 |注册聊天室监听]]
 ==== 更新聊天室公告 ==== ==== 更新聊天室公告 ====
  
行 262: 行 302:
  
  
 +也可以通过聊天室监听接口来获取聊天室公告的消息推送。见[[http://​docs-im.easemob.com/​im/​android/​basics/​chatroom#​注册聊天室监听 |注册聊天室监听]]
 ==== 注册聊天室监听 ==== ==== 注册聊天室监听 ====
  
行 297: 行 338:
  
  }  }
 +
 +     ​@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