登录与启动
预声明变量
readonly KookRestClient _restClient;
readonly KookSocketClient _socketClient;
Rest 客户端
// 使用默认配置创建 Rest 客户端
_restClient = new KookRestClient();
// 使用自定义配置创建 Rest 客户端
_restClient = new KookRestClient(new KookRestConfig()
{
// 请求头 Accept-Language
AcceptLanguage = "zh-CN",
// 默认重试模式
DefaultRetryMode = RetryMode.AlwaysRetry,
// 默认超速回调
DefaultRatelimitCallback = info => Task.CompletedTask,
// 日志级别
LogLevel = LogSeverity.Info,
// 双向文稿格式化用户名
FormatUsersInBidirectionalUnicode = true,
// Rest 客户端提供程序
RestClientProvider = DefaultRestClientProvider.Instance
});
// Token
string token = null;
// 登录
await _restClient.LoginAsync(TokenType.Bot, token);
// 登出
await _restClient.LogoutAsync();
WebSocket 客户端
// 使用默认配置创建 WebSocket 客户端
_socketClient = new KookRestClient();
// 使用自定义配置创建 WebSocket 客户端
_socketClient = new KookSocketClient(new KookRestConfig()
{
// 请求头 Accept-Language
AcceptLanguage = "zh-CN",
// 默认重试模式
DefaultRetryMode = RetryMode.AlwaysRetry,
// 默认超速回调
DefaultRatelimitCallback = info => Task.CompletedTask,
// 日志级别
LogLevel = LogSeverity.Info,
// 双向文稿格式化用户名
FormatUsersInBidirectionalUnicode = true,
// Rest 客户端提供程序
RestClientProvider = DefaultRestClientProvider.Instance,
// 显示指定网关地址
GatewayHost = null,
// 连接超时(毫秒)
ConnectionTimeout = 6000,
// 处理程序警告耗时阈值(毫秒)
HandlerTimeout = 3000,
// 消息缓存数量
MessageCacheSize = 10,
// WebSocket 客户端提供程序
WebSocketProvider = DefaultWebSocketProvider.Instance,
// UDP 客户端提供程序
UdpSocketProvider = DefaultUdpSocketProvider.Instance,
// 自动下载服务器用户信息
AlwaysDownloadUsers = false,
// 自动下载服务器用户语音状态信息
AlwaysDownloadVoiceStates = false,
// 自动下载服务器助力信息
AlwaysDownloadBoostSubscriptions = false,
// 等待服务器可用状态超时(毫秒)
MaxWaitBetweenGuildAvailablesBeforeReady = 10000,
// 最大获取新加入服务器信息重试次数
MaxJoinedGuildDataFetchingRetryTimes = 10,
// 获取新加入服务器信息重试延迟(毫秒)
JoinedGuildDataFetchingRetryDelay = 500
});
// Token
string token = null;
// 登录
await _socketClient.LoginAsync(TokenType.Bot, token);
// 启动
await _socketClient.StartAsync();
// 停止
await _socketClient.StopAsync();
// 登出
await _socketClient.LogoutAsync();
// 登出
await _socketClient.LogoutAsync();