Table of Contents

WebSocket 客户端

预声明变量

readonly KookSocketClient _socketClient;
// 使用默认配置创建 WebSocket 客户端
_socketClient = new KookRestClient();
// 使用自定义配置创建 WebSocket 客户端
_socketClient = new KookSocketClient(new KookSocketConfig
{
    // 包含 KookRestConfig 的全部配置项,此处略

    // 显式指定网关地址
    GatewayHost = null,
    // 连接超时(毫秒)
    ConnectionTimeout = 6000,
    // 小型 Bot 服务器数量阈值
    SmallNumberOfGuildsThreshold = 5,
    // 大型 Bot 服务器数量阈值
    LargeNumberOfGuildsThreshold = 50,
    // 处理程序警告耗时阈值(毫秒)
    HandlerTimeout = 3000,
    // 消息缓存数量
    MessageCacheSize = 10,
    // WebSocket 客户端提供程序
    WebSocketProvider = DefaultWebSocketProvider.Instance,
    // UDP 客户端提供程序
    UdpSocketProvider = DefaultUdpSocketProvider.Instance,
    // 启动缓存数据获取模式
    StartupCacheFetchMode = StartupCacheFetchMode.Auto,
    // 音频客户端被视为空闲的超时时间间隔(毫秒)
    AudioClientIdleTimeout = 15000,
    // 自动下载服务器用户信息
    AlwaysDownloadUsers = false,
    // 自动下载服务器用户语音状态信息
    AlwaysDownloadVoiceStates = false,
    // 自动下载服务器助力信息
    AlwaysDownloadBoostSubscriptions = false,
    // 最大获取新加入服务器信息重试次数
    MaxJoinedGuildDataFetchingRetryTimes = 10,
    // 获取新加入服务器信息重试延迟(毫秒)
    JoinedGuildDataFetchingRetryDelay = 500,
    // 服务器更新时是否主动通过 API 更新服务器角色排序
    AutoUpdateRolePositions = false,
    // 频道排序事件是否主动通过 API 更新服务器频道
    AutoUpdateChannelPositions = false,
    // 消息队列提供程序
    MessageQueueProvider = SynchronousImmediateMessageQueueProvider.Instance
});

// Token
string token = null;
// 登录
await _socketClient.LoginAsync(TokenType.Bot, token);
// 启动
await _socketClient.StartAsync();
// 停止
await _socketClient.StopAsync();
// 登出
await _socketClient.LogoutAsync();