IM 即时通讯
Android
开发指南

聊天室管理

更新时间: 2023/09/22 11:49:32

原型概览

返回值 ChatRoomInfo 接口 说明
String getAnnouncement() 获取聊天室公告
String getBroadcastUrl() 获取聊天室直播地址
String getCreator() 获取聊天室创建者帐号
Map getExtension() 获取聊天室扩展字段
String getName() 获取聊天室名称
int getOnlineUserCount() 获取当前在线用户数量
int getQueueLevel() 获取队列权限配置
String getRoomId() 获取聊天室id
boolean isMute() 获取当前聊天室禁言状态
boolean isValid() 获取聊天室有效标记
void setAnnouncement(String announcement) 设置聊天室公告
void setBroadcastUrl(String broadcastUrl) 设置聊天室直播地址
void setCreator(String creator) 设置聊天室创建者
void setExtension(Map extension) 设置扩展字段
void setMute(int mute) 设置当前聊天室禁言状态
void setName(String name) 设置聊天室名称
void setOnlineUserCount(int onlineUserCount) 设置当前在线用户数量
void setRoomId(String roomId) 设置聊天室id
void setValidFlag(int validFlag) 设置聊天室有效标记
void setQueueLevel(int queueLevel) 设置队列权限,0 表示所有人都有权限,1 表示只有主播/管理员有权限

聊天室管理

获取聊天室信息

此接口可以向服务器获取聊天室信息。SDK 不提供聊天室信息的缓存,开发者可根据需要自己做缓存。聊天室基本信息的扩展字段需要在服务器端设置,客户端 SDK 只提供查询。

  • API 原型
/**
 * 获取当前聊天室信息
 *
 * @param roomId 聊天室id
 * @return InvocationFuture 可以设置回调函数。回调中返回聊天室的信息
 */
InvocationFuture<ChatRoomInfo> fetchRoomInfo(String roomId);
  • 示例
// roomId为聊天室ID
NIMClient.getService(ChatRoomService.class).fetchRoomInfo(roomId).setCallback(new RequestCallback<ChatRoomInfo>() {
    @Override
    public void onSuccess(ChatRoomInfo param) {
        // 成功
    }

    @Override
    public void onFailed(int code) {
        // 失败
    }

    @Override
    public void onException(Throwable exception) {
        // 错误
    }
});

修改聊天室信息

支持修改聊天室信息,只有创建者和管理员拥有权限修改聊天室信息。可以设置修改是否通知,若设置通知,聊天室内会收到类型为NotificationType#ChatRoomInfoUpdated的消息。

  • API 原型
/**
 * 更新聊天室信息
 *
 * @param roomId             聊天室id
 * @param chatRoomUpdateInfo 可更新的聊天室信息
 * @param needNotify         是否通知
 * @param notifyExtension    更新聊天室信息操作的扩展字段,这个字段会放到更新聊天室信息通知消息的扩展字段中
 * @return InvocationFuture 可以设置回调函数。更新聊天室信息完成之后才会调用,如果出错,会有具体的错误代码。
 */
InvocationFuture<Void> updateRoomInfo(String roomId, ChatRoomUpdateInfo chatRoomUpdateInfo, boolean needNotify, Map<String, Object> notifyExtension);
/**
 * 更新聊天室信息
 *
 * @param roomId             聊天室id
 * @param chatRoomUpdateInfo 可更新的聊天室信息
 * @param needNotify         是否通知
 * @param notifyExtension    更新聊天室信息扩展字段,这个字段会放到更新聊天室信息通知的扩展字段中
 * @param antiSpamConfig     反垃圾配置参数
 * @return InvocationFuture 可以设置回调函数。更新聊天室信息完成之后才会调用,如果出错,会有具体的错误代码。
 */
InvocationFuture<Void> updateRoomInfo(String roomId, ChatRoomUpdateInfo chatRoomUpdateInfo, boolean needNotify, Map<String, Object> notifyExtension,AntiSpamConfig antiSpamConfig);
  • 参数说明
参数 说明
roomId 聊天室id
chatRoomUpdateInfo 可更新的聊天室信息
needNotify 是否通知
notifyExtension 更新聊天室信息扩展字段,这个字段会放到更新聊天室信息通知的扩展字段中
antiSpamConfig 反垃圾配置参数
  • 示例
// 以更新聊天室信息为例
ChatRoomUpdateInfo updateInfo = new ChatRoomUpdateInfo();
updateInfo.setName("新聊天室名称");

NIMClient.getService(ChatRoomService.class).updateRoomInfo(roomId, updateInfo, false, "")
         .setCallback(new RequestCallback<Void>() {
            @Override
            public void onSuccess(Void aVoid) {
                // 成功
            }

            @Override
            public void onFailed(int i) {
                // 失败
            }

            @Override
            public void onException(Throwable throwable) {
				// 错误
            }
        });
此文档是否对你有帮助?
有帮助
去反馈
  • 原型概览
  • 聊天室管理
  • 获取聊天室信息
  • 修改聊天室信息