Class RoomApi


  • public class RoomApi
    extends java.lang.Object
    聊天室API。
    • Constructor Summary

      Constructors 
      Constructor Description
      RoomApi​(Context context)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      reactor.core.publisher.Mono<java.lang.Void> addRoomMember​(java.lang.String roomId, java.lang.String username)
      m 向聊天室添加成员。
      reactor.core.publisher.Mono<java.lang.Void> assignRoom​(java.lang.String chatroomId, java.lang.String newOwner)
      转让聊天室。
      reactor.core.publisher.Mono<java.lang.String> createRoom​(java.lang.String name, java.lang.String description, java.lang.String owner, java.util.List<java.lang.String> members, int maxMembers)
      创建聊天室。
      reactor.core.publisher.Mono<java.lang.String> createRoom​(java.lang.String name, java.lang.String description, java.lang.String owner, java.util.List<java.lang.String> members, int maxMembers, java.lang.String custom)
      创建聊天室。
      reactor.core.publisher.Mono<java.lang.String> createRoom​(java.lang.String name, java.lang.String description, java.lang.String owner, java.util.List<java.lang.String> members, int maxMembers, java.lang.String custom, java.lang.Boolean needVerify)
      创建聊天室。
      reactor.core.publisher.Mono<java.lang.Void> demoteRoomAdmin​(java.lang.String roomId, java.lang.String username)
      降级聊天室管理员至成员。
      reactor.core.publisher.Mono<java.lang.Void> demoteRoomSuperAdmin​(java.lang.String username)
      降级超级管理员为普通用户
      reactor.core.publisher.Mono<java.lang.Void> destroyRoom​(java.lang.String roomId)
      注销聊天室
      reactor.core.publisher.Mono<EMRoom> getRoom​(java.lang.String id)
      获取聊天室详情。
      reactor.core.publisher.Mono<java.lang.String> getRoomAnnouncement​(java.lang.String chatroomId)
      获取聊天室公告。
      reactor.core.publisher.Mono<java.util.List<EMRoom>> getRoomList​(java.util.List<java.lang.String> roomIdList)
      获取多个聊天室详情。
      reactor.core.publisher.Flux<java.lang.String> listRoomAdminsAll​(java.lang.String roomId)
      获取聊天室管理员。
      reactor.core.publisher.Mono<EMPage<java.lang.String>> listRoomMembers​(java.lang.String roomId, int limit, java.lang.String cursor)
      分页获取聊天室成员列表。
      reactor.core.publisher.Mono<EMPage<java.lang.String>> listRoomMembers​(java.lang.String roomId, int limit, java.lang.String cursor, java.lang.String sort)
      分页获取聊天室成员列表。
      reactor.core.publisher.Flux<java.lang.String> listRoomMembersAll​(java.lang.String roomId)
      获取聊天室全部成员列表。
      reactor.core.publisher.Flux<java.lang.String> listRoomMembersAll​(java.lang.String roomId, java.lang.String sort)
      获取聊天室全部成员列表。
      reactor.core.publisher.Flux<java.util.Map<java.lang.String,​java.lang.String>> listRoomMembersAllWithOwner​(java.lang.String roomId)
      获取聊天室全部成员列表,包括聊天室的 Owner。
      reactor.core.publisher.Mono<java.util.List<java.util.Map<java.lang.String,​java.lang.String>>> listRoomMembersWithOwner​(java.lang.String roomId, int pageNum, int pageSize)
      分页获取聊天室成员列表,包括聊天室的 Owner。
      reactor.core.publisher.Mono<EMPage<java.lang.String>> listRooms​(int limit, java.lang.String cursor)
      分页获取聊天室列表
      reactor.core.publisher.Flux<java.lang.String> listRoomsAll()
      获取全部聊天室列表
      reactor.core.publisher.Flux<java.lang.String> listRoomSuperAdminsAll()
      获取所有超级管理员列表。
      reactor.core.publisher.Flux<java.lang.String> listRoomsUserJoined​(java.lang.String username)
      获取用户加入的聊天室列表。
      reactor.core.publisher.Mono<java.lang.Void> promoteRoomAdmin​(java.lang.String roomId, java.lang.String username)
      升级聊天室成员至管理员。
      reactor.core.publisher.Mono<java.lang.Void> promoteRoomSuperAdmin​(java.lang.String username)
      升级用户为超级管理员,只有超级管理员有权限创建聊天室。
      reactor.core.publisher.Mono<java.lang.Void> removeRoomMember​(java.lang.String roomId, java.lang.String username)
      从聊天室移除成员。
      reactor.core.publisher.Mono<java.lang.Void> updateRoom​(java.lang.String id, java.util.function.Consumer<UpdateRoomRequest> customizer)
      修改聊天室。
      reactor.core.publisher.Mono<java.lang.Void> updateRoomAnnouncement​(java.lang.String chatroomId, java.lang.String announcement)
      更新聊天室公告。
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • RoomApi

        public RoomApi​(Context context)
    • Method Detail

      • createRoom

        public reactor.core.publisher.Mono<java.lang.String> createRoom​(java.lang.String name,
                                                                        java.lang.String description,
                                                                        java.lang.String owner,
                                                                        java.util.List<java.lang.String> members,
                                                                        int maxMembers)
        创建聊天室。

        API使用示例:

         
         EMService service;
         List<String> members = new ArrayList<>();
         members.add("userA");
        
         try {
             String roomId = service.room().createRoom("name", "description", "owner", members, 200).block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        name - 聊天室名称
        description - 聊天室描述
        owner - 聊天室主
        members - 聊天室初始成员的用户名列表
        maxMembers - 聊天室最大成员数
        Returns:
        聊天室id或错误
        See Also:
        创建聊天室
      • createRoom

        public reactor.core.publisher.Mono<java.lang.String> createRoom​(java.lang.String name,
                                                                        java.lang.String description,
                                                                        java.lang.String owner,
                                                                        java.util.List<java.lang.String> members,
                                                                        int maxMembers,
                                                                        java.lang.String custom)
        创建聊天室。

        API使用示例:

         
         EMService service;
         List<String> members = new ArrayList<>();
         members.add("userA");
        
         try {
             String roomId = service.room().createRoom("name", "description", "owner", members, 200).block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        name - 聊天室名称
        description - 聊天室描述
        owner - 聊天室主
        members - 聊天室初始成员的用户名列表
        maxMembers - 聊天室最大成员数
        custom - 聊天室扩展信息,例如可以给聊天室添加业务相关的标记
        Returns:
        聊天室id或错误
        See Also:
        创建聊天室
      • createRoom

        public reactor.core.publisher.Mono<java.lang.String> createRoom​(java.lang.String name,
                                                                        java.lang.String description,
                                                                        java.lang.String owner,
                                                                        java.util.List<java.lang.String> members,
                                                                        int maxMembers,
                                                                        java.lang.String custom,
                                                                        java.lang.Boolean needVerify)
        创建聊天室。

        API使用示例:

         
         EMService service;
         List<String> members = new ArrayList<>();
         members.add("userA");
        
         try {
             String roomId = service.room().createRoom("name", "description", "owner", members, 200, "custom", true).block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        name - 聊天室名称
        description - 聊天室描述
        owner - 聊天室主
        members - 聊天室初始成员的用户名列表
        maxMembers - 聊天室最大成员数
        custom - 聊天室扩展信息,例如可以给聊天室添加业务相关的标记
        needVerify - 是否审核聊天室名称(付费功能,需联系商务开通)
        Returns:
        聊天室id或错误
        See Also:
        创建聊天室
      • getRoom

        public reactor.core.publisher.Mono<EMRoom> getRoom​(java.lang.String id)
        获取聊天室详情。

        API使用示例:

         
         EMService service;
         try {
             EMRoom room = service.room().getRoom(roomId).block();
             String roomName = room.name();
             String roomDescription = room.description();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        id - 聊天室id
        Returns:
        聊天室详情或错误.
        See Also:
        获取聊天室详情
      • getRoomList

        public reactor.core.publisher.Mono<java.util.List<EMRoom>> getRoomList​(java.util.List<java.lang.String> roomIdList)
        获取多个聊天室详情。

        API使用示例:

         
         EMService service;
         try {
             List<String> roomIdList = new ArrayList<>();
             roomIdList.add("193100825821185");
             roomIdList.add("193100825821186");
        
             List<EMRoom> roomList = service.group().getRoomList(roomIdList).block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        roomIdList - 聊天室id列表
        Returns:
        聊天室情或错误
        See Also:
        获取聊天室详情
      • updateRoom

        public reactor.core.publisher.Mono<java.lang.Void> updateRoom​(java.lang.String id,
                                                                      java.util.function.Consumer<UpdateRoomRequest> customizer)
        修改聊天室。

        可修改的字段参考 UpdateRoomRequest

        API使用示例:

        比如,要更新聊天室名称,可以这么做:

        
         EMService service;
         try {
             service.updateRoom(roomId, request -> request.withName("some cool name")).block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        id - 聊天室id
        customizer - 更新请求定制函数
        Returns:
        成功或错误
        See Also:
        UpdateRoomRequest, 修改聊天室
      • listRoomsAll

        public reactor.core.publisher.Flux<java.lang.String> listRoomsAll()
        获取全部聊天室列表

        API使用示例:

         
         EMService service;
         try {
             List<String> rooms = service.room().listRoomsAll().collectList().block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Returns:
        每个聊天室的id或错误
        See Also:
        获取聊天室列表
      • listRooms

        public reactor.core.publisher.Mono<EMPage<java.lang.String>> listRooms​(int limit,
                                                                               java.lang.String cursor)
        分页获取聊天室列表

        API使用示例:

         
         EMService service;
         EMPage<String> page = null;
         try {
             service.room().listRooms(10, null).block();
             List<String> roomIds = page.getValues();
             System.out.println("聊天室列表:" + roomIds);
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
        
         // ... do something with the roomIds ...
         if (page != null) {
              String cursor = page.getCursor();
              // cursor == null indicates the end of the list
              while (cursor != null) {
                      try {
                          page = service.room().listRooms(10, cursor).block();
                          System.out.println("聊天室列表:" + page.getValues());
                          // ... do something to the roomIds ...
                          cursor = page.getCursor();
                      } catch (EMException e) {
                          e.getErrorCode();
                          e.getMessage();
                      }
              }
         }
         
        Parameters:
        limit - 返回多少个聊天室id
        cursor - 开始位置
        Returns:
        获取聊天室响应或错误
        See Also:
        获取聊天室列表
      • listRoomsUserJoined

        public reactor.core.publisher.Flux<java.lang.String> listRoomsUserJoined​(java.lang.String username)
        获取用户加入的聊天室列表。

        API使用示例:

         
         EMService service;
         try {
             List<String> rooms = service.room().listRoomsUserJoined("username").collectList().block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        username - 用户名
        Returns:
        每个聊天室的id或错误
        See Also:
        获取用户加入的聊天室
      • listRoomMembersAll

        public reactor.core.publisher.Flux<java.lang.String> listRoomMembersAll​(java.lang.String roomId)
        获取聊天室全部成员列表。

        API使用示例:

         
         EMService service;
         try {
             List<String> members = service.room().listRoomMembersAll("roomId").collectList().block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        roomId - 聊天室id
        Returns:
        每个聊天室成员或者错误
        See Also:
        获取聊天室成员
      • listRoomMembersAll

        public reactor.core.publisher.Flux<java.lang.String> listRoomMembersAll​(java.lang.String roomId,
                                                                                java.lang.String sort)
        获取聊天室全部成员列表。

        API使用示例:

         
         EMService service;
         try {
             List<String> members = service.room().listRoomMembersAll("roomId", "asc").collectList().block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        roomId - 聊天室id
        sort - 聊天室成员排序方法 asc:根据加入顺序升序排序 desc:根据加入顺序降序排序
        Returns:
        每个聊天室成员或者错误
        See Also:
        获取聊天室成员
      • listRoomMembersAllWithOwner

        public reactor.core.publisher.Flux<java.util.Map<java.lang.String,​java.lang.String>> listRoomMembersAllWithOwner​(java.lang.String roomId)
        获取聊天室全部成员列表,包括聊天室的 Owner。

        API使用示例:

         
         EMService service;
         try {
             List<Map<String, String>> members = service.room().listRoomMembersAllWithOwner("roomId").collectList().block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        roomId - 聊天室id
        Returns:
        每个聊天室成员或者错误
        See Also:
        获取聊天室成员
      • listRoomMembers

        public reactor.core.publisher.Mono<EMPage<java.lang.String>> listRoomMembers​(java.lang.String roomId,
                                                                                     int limit,
                                                                                     java.lang.String cursor)
        分页获取聊天室成员列表。

        API使用示例:

         
         EMService service;
         EMPage<String> page = null;
         try {
             EMPage<String> page = service.room().listRoomMembers(roomId, 1, null).block();
             List<String> members = page.getValues();
             System.out.println("聊天室成员列表:" + members);
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
        
         // ... do something with the roomIds ...
         if (page != null) {
              String cursor = page.getCursor();
              // cursor == null indicates the end of the list
              while (cursor != null) {
                      try {
                          page = service.room().listRoomMembers(roomId, 1, cursor).block();
                          System.out.println("聊天室成员列表:" + page.getValues());
                          // ... do something to the members ...
                          cursor = page.getCursor();
                      } catch (EMException e) {
                          e.getErrorCode();
                          e.getMessage();
                      }
              }
         }
         
        Parameters:
        roomId - 聊天室id
        limit - 返回多少个聊天室成员
        cursor - 开始位置
        Returns:
        获取聊天室成员响应或错误
        See Also:
        获取聊天室成员
      • listRoomMembersWithOwner

        public reactor.core.publisher.Mono<java.util.List<java.util.Map<java.lang.String,​java.lang.String>>> listRoomMembersWithOwner​(java.lang.String roomId,
                                                                                                                                            int pageNum,
                                                                                                                                            int pageSize)
        分页获取聊天室成员列表,包括聊天室的 Owner。

        API使用示例:

         
         EMService service;
         EMPage<String> page = null;
         try {
             List<Map<String, String>> members = service.room().listRoomMembers(roomId, 1, 10).block();
             System.out.println("聊天室成员列表:" + members);
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
        
        Parameters:
        roomId - 聊天室id
        pageNum - 当前页码。默认从第 1 页开始获取
        pageSize - 每页期望返回的群组成员数量。取值范围为[1,100]。默认为 10。
        Returns:
        获取聊天室成员响应或错误
        See Also:
        获取聊天室成员
      • listRoomMembers

        public reactor.core.publisher.Mono<EMPage<java.lang.String>> listRoomMembers​(java.lang.String roomId,
                                                                                     int limit,
                                                                                     java.lang.String cursor,
                                                                                     java.lang.String sort)
        分页获取聊天室成员列表。

        API使用示例:

         
         EMService service;
         EMPage<String> page = null;
         try {
             EMPage<String> page = service.room().listRoomMembers(roomId, 1, null, "asc").block();
             List<String> members = page.getValues();
             System.out.println("聊天室成员列表:" + members);
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
        
         // ... do something with the roomIds ...
         if (page != null) {
              String cursor = page.getCursor();
              // cursor == null indicates the end of the list
              while (cursor != null) {
                      try {
                          page = service.room().listRoomMembers(roomId, 1, cursor, "asc").block();
                          System.out.println("聊天室成员列表:" + page.getValues());
                          // ... do something to the members ...
                          cursor = page.getCursor();
                      } catch (EMException e) {
                          e.getErrorCode();
                          e.getMessage();
                      }
              }
         }
         
        Parameters:
        roomId - 聊天室id
        limit - 返回多少个聊天室成员
        cursor - 开始位置
        sort - 聊天室成员排序方法 asc:根据加入顺序升序排序 desc:根据加入顺序降序排序
        Returns:
        获取聊天室成员响应或错误
        See Also:
        获取聊天室成员
      • addRoomMember

        public reactor.core.publisher.Mono<java.lang.Void> addRoomMember​(java.lang.String roomId,
                                                                         java.lang.String username)
        m 向聊天室添加成员。

        API使用示例:

         
         EMService service;
         try {
             service.room().addRoomMember("roomId", "username").block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        roomId - 聊天室id
        username - 要添加的用户的用户名
        Returns:
        成功或错误
        See Also:
        聊天室添加成员
      • removeRoomMember

        public reactor.core.publisher.Mono<java.lang.Void> removeRoomMember​(java.lang.String roomId,
                                                                            java.lang.String username)
        从聊天室移除成员。

        API使用示例:

         
         EMService service;
         try {
             service.room().removeRoomMember("roomId", "username").block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        roomId - 聊天室id
        username - 要移除的成员的用户名
        Returns:
        成功或错误
        See Also:
        聊天室移除成员
      • listRoomAdminsAll

        public reactor.core.publisher.Flux<java.lang.String> listRoomAdminsAll​(java.lang.String roomId)
        获取聊天室管理员。

        API使用示例:

         
         EMService service;
         try {
             List<String> admins = service.room().listRoomAdminsAll("roomId").collectList().block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        roomId - 聊天室id
        Returns:
        每个管理员的用户名或错误
        See Also:
        获取聊天室管理员
      • promoteRoomAdmin

        public reactor.core.publisher.Mono<java.lang.Void> promoteRoomAdmin​(java.lang.String roomId,
                                                                            java.lang.String username)
        升级聊天室成员至管理员。

        API使用示例:

         
         EMService service;
         try {
             service.room().promoteRoomAdmin("roomId", "username").block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        roomId - 聊天室id
        username - 要升级的成员的用户名
        Returns:
        成功或错误
        See Also:
        添加聊天室管理员
      • demoteRoomAdmin

        public reactor.core.publisher.Mono<java.lang.Void> demoteRoomAdmin​(java.lang.String roomId,
                                                                           java.lang.String username)
        降级聊天室管理员至成员。

        API使用示例:

         
         EMService service;
         try {
             service.room().demoteRoomAdmin("roomId", "username").block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        roomId - 聊天室id
        username - 要降级的管理员的用户名
        Returns:
        成功或错误
        See Also:
        移除聊天室管理员
      • listRoomSuperAdminsAll

        public reactor.core.publisher.Flux<java.lang.String> listRoomSuperAdminsAll()
        获取所有超级管理员列表。

        API使用示例:

         
         EMService service;
         try {
             List<String> superAdmins = service.room().listRoomSuperAdminsAll().collectList().block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Returns:
        所有超级管理员的用户名
        See Also:
        分页获取聊天室超级管理员列表
      • promoteRoomSuperAdmin

        public reactor.core.publisher.Mono<java.lang.Void> promoteRoomSuperAdmin​(java.lang.String username)
        升级用户为超级管理员,只有超级管理员有权限创建聊天室。

        API使用示例:

         
         EMService service;
         try {
             service.room().promoteRoomSuperAdmin("username").block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        username - 要升级的用户的用户名
        Returns:
        成功或错误
        See Also:
        添加超级管理员
      • demoteRoomSuperAdmin

        public reactor.core.publisher.Mono<java.lang.Void> demoteRoomSuperAdmin​(java.lang.String username)
        降级超级管理员为普通用户

        API使用示例:

         
         EMService service;
         try {
             service.room().demoteRoomSuperAdmin("username").block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        username - 要降级的超级管理员的用户名
        Returns:
        成功或错误
        See Also:
        移除超级管理员
      • destroyRoom

        public reactor.core.publisher.Mono<java.lang.Void> destroyRoom​(java.lang.String roomId)
        注销聊天室

        请谨慎使用。

        API使用示例:

         
         EMService service;
         try {
             service.room().destroyRoom("roomId").block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        roomId - 聊天室id
        Returns:
        成功或错误
        See Also:
        删除聊天室
      • assignRoom

        public reactor.core.publisher.Mono<java.lang.Void> assignRoom​(java.lang.String chatroomId,
                                                                      java.lang.String newOwner)
        转让聊天室。

        API使用示例:

         
         EMService service;
         try {
             service.room().assignRoom("chatroomId", "newOwner").block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        chatroomId - 聊天室id
        newOwner - 被转让聊天室的用户名
        Returns:
        成功或错误
      • getRoomAnnouncement

        public reactor.core.publisher.Mono<java.lang.String> getRoomAnnouncement​(java.lang.String chatroomId)
        获取聊天室公告。

        API使用示例:

         
         EMService service;
         try {
             String roomAnnouncement = service.room().getRoomAnnouncement("roomId").block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        chatroomId - 聊天室id
        Returns:
        聊天室公告或错误
      • updateRoomAnnouncement

        public reactor.core.publisher.Mono<java.lang.Void> updateRoomAnnouncement​(java.lang.String chatroomId,
                                                                                  java.lang.String announcement)
        更新聊天室公告。

        API使用示例:

         
         EMService service;
         try {
             service.room().updateRoomAnnouncement("chatroomId", "announcement").block();
         } catch (EMException e) {
             e.getErrorCode();
             e.getMessage();
         }
         
        Parameters:
        chatroomId - 聊天室id
        announcement - 聊天室公告
        Returns:
        成功或错误