圈组服务器管理(已不再维护)
更新时间: 2024/08/20 15:45:46
圈组服务器是一个关系和话题的集散地,就像一个游乐场的场地,因此我们必须首先构建出这样一个场地,有了场地才可以构建其他设施。
SDK 中用于表示圈组服务器的结构为 QChatServer: QChatServer参数说明:
返回值 | 参数 | 说明 |
---|---|---|
long | getServerId() | 获取服务器id |
String | getName() | 获取名称 |
String | getIcon() | 获取图标 |
String | getCustom() | 获取自定义扩展 |
String | getOwner() | 获取所有者 |
int | getMemberNumber() | 获取成员数 |
QChatInviteMode | getInviteMode() | 获取邀请模式 |
QChatInviteMode.AGREE_NEED:邀请需要同意 | ||
QChatInviteMode.AGREE_NEED_NOT:邀请不需要同意 | ||
QChatApplyJoinModegetApplyMode()获取申请模式 | ||
QChatApplyJoinMode.AGREE_NEED_NOT:申请不需要同意 | ||
QChatApplyJoinMode.AGREE_NEED:申请需要同意 | ||
boolean | isValid() | 获取有效标志:false-无效,true-有效 |
long | getCreateTime() | 获取创建时间 |
long | getUpdateTime() | 获取更新时间 |
void | setName(Stringname) | 设置名称 |
void | setIcon(Stringicon) | 设置图标 |
void | setCustom(Stringcustom) | 设置自定义扩展 |
void | setInviteMode(QChatInviteModeinviteMode) | 设置邀请模式 |
void | setApplyMode(QChatApplyJoinModeapplyMode) | 设置申请模式 |
void | setValid(booleanvalid) | 设置有效标志 |
int | getChannelNum() | 获取频道数 |
创建圈组服务器
创建圈组服务器接口
登录成功后,可以创建一个圈组服务器:
/**
* 创建服务器
* @param param
* @return InvocationFuture 可设置回调函数,监听操作结果。回调返回创建成功的服务器
*/
InvocationFuture<QChatCreateServerResult> createServer(QChatCreateServerParam param);
其中构造QChatCreateServerParam时是name必填字段,具体参数如下所示:
返回值 | 参数 | 说明 |
---|---|---|
void | setIcon(String icon) | 设置图标 |
urlvoid | setCustom(String custom) | 设置自定义扩展 |
void | setInviteMode(@NonNull QChatInviteMode inviteMode) | 设置邀请模式 |
QChatInviteMode.AGREE_NEED:邀请需要同意 | ||
QChatInviteMode.AGREE_NEED_NOT:邀请不需要同意 | ||
void | setApplyJoinMode(@NonNull QChatApplyJoinMode applyJoinMode) | 设置申请模式 |
QChatApplyJoinMode.AGREE_NEED_NOT:申请不需要同意 | ||
QChatApplyJoinMode.AGREE_NEED:申请需要同意 | ||
String | getName() | 获取服务器名称 |
String | getIcon() | 获取图标url |
String | getCustom() | 获取自定义扩展 |
QChatInviteModegetInviteMode()获取邀请模式 | ||
QChatApplyJoinModegetApplyJoinMode()获取申请模式 | ||
void | setAntiSpamConfig(QChatAntiSpamConfig antiSpamConfig) | 设置反垃圾配置 |
QChatAntiSpamConfig | getAntiSpamConfig() | 获取反垃圾配置 |
示例代码
QChatCreateServerParam param = new QChatCreateServerParam("测试");
QChatAntiSpamConfig antiSpamConfig = new QChatAntiSpamConfig("用户配置的对某些资料内容另外的反垃圾的业务ID");
param.setAntiSpamBusinessId(antiSpamConfig);
NIMClient.getService(QChatServerService.class).createServer(param).setCallback(
new RequestCallback<QChatCreateServerResult>() {
@Override
public void onSuccess(QChatCreateServerResult result) {
// 创建成功
QChatServer server = result.getServer();
}
@Override
public void onFailed(int code) {
// 创建失败,返回错误code
}
@Override
public void onException(Throwable exception) {
// 创建异常
}
});
查询圈组服务器
SDK提供两种方式查询Server信息,分别是按ServerId查询Server信息和按时间分页查询Server信息。
按ServerId查询圈组服务器信息
查询方法
可通过传入ServerId列表查询指定的圈组服务器信息:
/**
* 通过ServerId列表查询服务器
* @param param
* @return InvocationFuture 可设置回调函数,监听操作结果。回调返回查询到的服务器列表
*/
InvocationFuture<QChatGetServersResult> getServers(QChatGetServersParam param);
其中QChatGetServersParam入参内容为将要查询的服务器Id列表
示例代码
List<Long> serviceIds = new ArrayList<>();
serviceIds.add(944334L);
serviceIds.add(944335L);
NIMClient.getService(QChatServerService.class).getServers(new QChatGetServersParam(serviceIds)).setCallback(
new RequestCallback<QChatGetServersResult>() {
@Override
public void onSuccess(QChatGetServersResult result) {
// 查询Server信息成功
List<QChatServer> servers = result.getServers();
}
@Override
public void onFailed(int code) {
// 查询Server信息失败,返回错误code
}
@Override
public void onException(Throwable exception) {
// 查询Server信息异常
}
});
按时间分页查询Server信息
查询方法
可以通过时间戳和查询数量分页查询Server信息:
/**
* 通过分页信息查询服务器
* @param param
* @return InvocationFuture 可设置回调函数,监听操作结果。回调返回查询到的服务器列表
*/
InvocationFuture<QChatGetServersByPageResult> getServersByPage(QChatGetServersByPageParam param);
其中QChatGetServersByPageParam入参内容为查询锚点时间戳timeTag和查询数量限制limit。
实例代码
//当前时间往前查最多100条Server信息
NIMClient.getService(QChatServerService.class).getServersByPage(new QChatGetServersByPageParam(System.currentTimeMillis(),100)).setCallback(
new RequestCallback<QChatGetServersByPageResult>() {
@Override
public void onSuccess(QChatGetServersByPageResult result) {
// 查询Server信息成功
List<QChatServer> servers = result.getServers();
}
@Override
public void onFailed(int code) {
// 查询Server信息失败,返回错误code
}
@Override
public void onException(Throwable exception) {
// 查询Server信息异常
}
});
修改圈组服务器信息
有管理服务器权限的用户可以对创建好的圈组服务器修改信息,可修改的信息包括:服务器名称,服务器图标,服务器自定义扩展,服务器邀请模式和服务器申请模式,9.1.0版本后可设置反垃圾配置QChatAntiSpamConfig。
接口
/**
* 修改服务器信息
* @param param
* @return InvocationFuture 可设置回调函数,监听操作结果。
*/
InvocationFuture<QChatUpdateServerResult> updateServer(QChatUpdateServerParam param);
其中QChatUpdateServerParam参数说明如下:
返回值 | 参数 | 说明 |
---|---|---|
Long | getServerId() | 获取服务器Id |
String | getName() | 获取服务器名称 |
void | setName(String name) | 设置服务器名称 |
String | getIcon() | 获取服务器图标url |
void | setIcon(String icon) | 设置服务器图标url |
String | getCustom() | 设置服务器自定义扩展 |
void | setCustom(String custom) | 设置服务器自定义扩展 |
QChatInviteMode | getInviteMode() | 获取邀请加入服务器模式 |
void | setInviteMode(QChatInviteMode inviteMode) | 设置邀请加入服务器模式 |
QChatApplyJoinMode | getApplyMode() | 获取申请加入服务器模式 |
void | setApplyMode(QChatApplyJoinMode applyMode) | 设置申请加入服务器模式 |
void | setAntiSpamConfig(QChatAntiSpamConfig antiSpamConfig) | 设置反垃圾配置 |
QChatAntiSpamConfig | getAntiSpamConfig() | 获取反垃圾配置 |
示例代码
QChatUpdateServerParam param = new QChatUpdateServerParam(944335L);
param.setName("修改Server名称");
QChatAntiSpamConfig antiSpamConfig = new QChatAntiSpamConfig("用户配置的对某些资料内容另外的反垃圾的业务ID");
param.setAntiSpamBusinessId(antiSpamConfig);
NIMClient.getService(QChatServerService.class).updateServer(param).setCallback(
new RequestCallback<QChatUpdateServerResult>() {
@Override
public void onSuccess(QChatUpdateServerResult result) {
// 修改Server信息成功
QChatServer server = result.getServer();
}
@Override
public void onFailed(int code) {
// 修改Server信息失败,返回错误code
}
@Override
public void onException(Throwable exception) {
// 修改Server信息异常
}
});
删除圈组服务器
接口
圈组服务器创建者可以删除该服务器:
/**
* 删除服务器
* @param param
* @return InvocationFuture 可设置回调函数,监听操作结果。
*/
InvocationFuture<Void> deleteServer(QChatDeleteServerParam param);
其中QChatDeleteServerParam的参数为需要删除的ServerId。
示例代码
NIMClient.getService(QChatServerService.class).deleteServer(new QChatDeleteServerParam(944335L)).setCallback(
new RequestCallback<Void>() {
@Override
public void onSuccess(Void result) {
// 删除Server成功
}
@Override
public void onFailed(int code) {
// 删除Server失败,返回错误code
}
@Override
public void onException(Throwable exception) {
// 删除Server异常
}
});
订阅圈组服务器的系统通知
接口
您可通过以下接口订阅或者取消订阅圈组服务器(Server)的系统通知,与您相关的系统通知,比如您被邀请加入圈组服务器、您从圈组服务器被踢等,不需要订阅就可以收到,与您不相关的系统通知,大Server下需要主动订阅Server才能收到,小Server下不需要订阅就可以收到,Server中的成员大于服务端设置的大Server阈值(服务端可配置)即认为是大Server:
/**
* 订阅服务器
* 与你相关的系统通知,比如你被邀请加入服务器、你从服务器被踢等,不需要订阅就可以收到
* 与你不相关的系统通知,大服务器下需要主动订阅服务器才能收到,小服务器下不需要订阅就可以收到
* @param param
* @return InvocationFuture 可设置回调函数,监听操作结果。回调中返回订阅结果
*/
InvocationFuture<Void> subscribeServer(QChatSubscribeServerParam param);
其中QChatSubscribeServerParam中需要传入订阅类型,订阅操作类型和需要订阅的serverId列表,目前订阅Server中订阅类型只能传QChatSubscribeType.SERVER_MSG。
示例代码
QChatSubscribeServerParam param = new QChatSubscribeServerParam(QChatSubscribeType.SERVER_MSG, QChatSubscribeOperateType.SUB, getServerList());
NIMClient.getService(QChatServerService.class).subscribeServer(param).setCallback(new RequestCallback<Void>() {
@Override
public void onSuccess(Void param) {
//订阅成功
}
@Override
public void onFailed(int code) {
//订阅失败,返回错误code
}
@Override
public void onException(Throwable exception) {
//订阅异常
}
});
更新服务器推送配置
接口
您可通过以下接口设置服务器维度接收推送消息类型:
/**
* 更新用户服务器推送配置
* @param param
* @return InvocationFuture 可设置回调函数,监听操作结果
*/
InvocationFuture<Void> updateUserServerPushConfig(QChatUpdateUserServerPushConfigParam param);
其中QChatUpdateUserServerPushConfigParam中需要传入对应的ServerId和推送消息类型选项QChatPushMsgType。 QChatPushMsgType提供5种类型:
- ALL:推送全部类型消息
- HIGH_MID_LEVEL:只推送高、中等级消息
- HIGH_LEVEL:只推送高等级消息
- NONE:全部消息都不推送
- INHERIT:继承上一级配置(即继承设备维度的配置,详见圈组推送管理模块)
示例代码
NIMClient.getService(QChatServerService.class).updateUserServerPushConfig(new QChatUpdateUserServerPushConfigParam(1607312, QChatPushMsgType.ALL))
.setCallback(new RequestCallback<Void>() {
@Override
public void onSuccess(Void param) {
//操作成功
}
@Override
public void onFailed(int code) {
//操作失败,返回错误code
}
@Override
public void onException(Throwable exception) {
//操作异常
}
});
获取用户服务器推送配置列表
接口
您可通过以下接口获取多个服务器的推送配置:
/**
* 获取用户服务器推送配置列表
* @param param
* @return InvocationFuture 可设置回调函数,监听操作结果
*/
InvocationFuture<QChatGetUserPushConfigsResult> getUserServerPushConfigs(QChatGetUserServerPushConfigsParam param);
其中QChatGetUserServerPushConfigsParam中需要传入需要查询的ServerId列表。 QChatGetUserPushConfigsResult返回查询到的用户推送配置QChatUserPushConfig列表
QChatUserPushConfig参数说明如下:
返回值 | 参数 | 说明 |
---|---|---|
String | getAccid() | 获取用户accid |
long | getServerId() | 获取服务器id |
long | getChannelId() | 获取频道id |
QChatDimension | getDimension() | 获取推送维度 |
QChatPushMsgType | getPushMsgType() | 获取推送接收哪些消息类型 |
long | getCreateTime() | 获取创建时间 |
long | getUpdateTime() | 获取更新时间 |
示例代码
List<Long> serverIdList = getServerIdList();
NIMClient.getService(QChatServerService.class).getUserServerPushConfigs(new QChatGetUserServerPushConfigsParam(serverIdList))
.setCallback(new RequestCallback<QChatGetUserPushConfigsResult>() {
@Override
public void onSuccess(QChatGetUserPushConfigsResult result) {
//操作成功
List<QChatUserPushConfig> userPushConfigs = result.getUserPushConfigs();
}
@Override
public void onFailed(int code) {
//操作失败,返回错误code
}
@Override
public void onException(Throwable exception) {
//操作异常
}
});