Table of Contents

Class KookSocketConfig

Namespace
Kook.WebSocket
Assembly
Kook.Net.WebSocket.dll

表示一个用于 KookSocketClient 的配置类。

public class KookSocketConfig : KookRestConfig
Inheritance
KookSocketConfig
Derived
Inherited Members

Examples

以下代码启用了消息缓存,并配置客户端在服务器可用时始终下载用户。

var config = new KookSocketConfig
{
    AlwaysDownloadUsers = true,
    MessageCacheSize = 100
};
var client = new KookSocketClient(config);

Remarks

此配置基于 KookRestConfig,在与 REST 有关的配置的基础上,定义了有关网关的配置。

Constructors

KookSocketConfig()

初始化一个 KookSocketConfig 类的新实例。

public KookSocketConfig()

Fields

GatewayEncoding

获取网关使用的数据格式。

public const string GatewayEncoding = "json"

Field Value

string

RtcpIntervalMilliseconds

获取语音客户端 RTP 连接中发送 RTCP 数据报的时间间隔(毫秒)。

public const int RtcpIntervalMilliseconds = 5000

Field Value

int

Properties

AlwaysDownloadBoostSubscriptions

获取或设置是否在服务器可用时始终下载所有服务器的所有服务器助力信息。

public bool AlwaysDownloadBoostSubscriptions { get; set; }

Property Value

bool

Remarks

note

当此属性为 true 时,客户端将在启动时下载所有服务器的所有服务器助力信息,并在引发 GuildUpdated 事件时,当 BoostSubscriptionCount 发生更改时,也会重新下载所有服务器的所有服务器助力信息。
对于大型服务器,启用此选项可能会导致性能问题。调用 DownloadBoostSubscriptionsAsync(IEnumerable<IGuild>?, RequestOptions?) 可以按需下载服务器的所有服务器助力信息。

AlwaysDownloadUsers

获取或设置是否在服务器可用时始终下载所有用户。

public bool AlwaysDownloadUsers { get; set; }

Property Value

bool

Remarks

note

对于大型服务器,启用此选项可能会导致性能问题。调用 DownloadUsersAsync(IEnumerable<IGuild>?, RequestOptions?) 可以按需下载服务器用户列表。

AlwaysDownloadVoiceStates

获取或设置是否在服务器可用时始终下载所有语音状态。

public bool AlwaysDownloadVoiceStates { get; set; }

Property Value

bool

Remarks

note

对于大型服务器,启用此选项可能会导致性能问题。调用 DownloadVoiceStatesAsync(IEnumerable<IGuild>?, RequestOptions?) 可以按需下载服务器语音状态。

AudioClientIdleTimeout

获取或设置音频客户端被视为空闲的超时时间间隔(毫秒)。

public int AudioClientIdleTimeout { get; set; }

Property Value

int

AutoLogoutBeforeLogin

在登录前是否先退出登录。

public bool AutoLogoutBeforeLogin { get; set; }

Property Value

bool

Remarks

如果为 true,则在调用登陆方法时会向 KOOK API 调用退出登录接口,这会使所有使用与传入该登陆方法相同的登录信息的 Bot 客户端的网关连接离线。
KOOK 不支持多 Bot 客户端同时保持连接,当已有 Bot 客户端在线时,后续的客户端再建立的连接虽可以握手成功,但无法收到任何来自 KOOK 网关下发的业务事件,Bot 客户端会因此陷入“假活而不自知”的状态。设置此属性为 true 时,可以确保当前 Bot 客户端新实例连接至网关时,能够接收到来自 KOOK 网关的业务事件。

warning

设置此属性为 true 时,会导致与此客户端使用相同登录信息的 Bot 客户端现有的网关连接无法再收到任何业务事件,也不会被 KOOK 网关主动断开连接,从而陷入“假活而不自知”的状态。

AutoUpdateChannelPositions

获取或设置是否在网关发布 sort_channel 事件时通过 API 更新服务器频道。

public bool AutoUpdateChannelPositions { get; set; }

Property Value

bool

AutoUpdateRolePositions

获取或设置是否在引发 GuildUpdated 事件时通过 API 更新服务器角色位置。

public bool AutoUpdateRolePositions { get; set; }

Property Value

bool

ConnectionTimeout

获取或设置连接到网关时的超时时间间隔(毫秒)。

public int ConnectionTimeout { get; set; }

Property Value

int

GatewayHost

获取或设置要连接的网关地址。如果为 null,则客户端将会通过 API 请求获取网关地址。

public string? GatewayHost { get; set; }

Property Value

string

HandlerTimeout

获取或设置阻塞网关线程的事件处理程序的超时时间间隔(毫秒),超过此时间间隔的阻塞网关线程的事件处理程序会被日志记录警告。将此属性设置为 null 将禁用此检查。

public int? HandlerTimeout { get; set; }

Property Value

int?

HeartbeatIntervalMilliseconds

获取网关发送心跳包的时间间隔(毫秒)。

public int HeartbeatIntervalMilliseconds { get; }

Property Value

int

JoinedGuildDataFetchingRetryDelay

获取或设置获取新加入服务器数据每次重试之前所等待的时间间隔(毫秒)。

public int JoinedGuildDataFetchingRetryDelay { get; set; }

Property Value

int

Exceptions

ArgumentException

时间间隔不能小于 0

See Also

LargeNumberOfGuildsThreshold

获取或设置被视为加入大量服务器的阈值数量。

public uint LargeNumberOfGuildsThreshold { get; set; }

Property Value

uint
See Also

MaxJoinedGuildDataFetchingRetryTimes

获取或设置获取新加入服务器数据的最大重试次数。

public int MaxJoinedGuildDataFetchingRetryTimes { get; set; }

Property Value

int

Remarks

KOOK API 无法立即返回刚刚新加入的服务器数据,因此此属性用于控制获取加入的服务器数据的最大重试次数。 每次重试前都会等待 JoinedGuildDataFetchingRetryDelay 毫秒。将当前属性设置为 0 或负值以禁用重试。

MessageCacheSize

获取或设置应在缓存中保留的每个频道的消息数量。将此属性设置为零将完全禁用消息缓存。

public int MessageCacheSize { get; set; }

Property Value

int

MessageQueueProvider

获取或设置用于创建消息队列的委托。

public MessageQueueProvider MessageQueueProvider { get; set; }

Property Value

MessageQueueProvider

SmallNumberOfGuildsThreshold

获取或设置被视为加入少量服务器的阈值数量。

public uint SmallNumberOfGuildsThreshold { get; set; }

Property Value

uint
See Also

StartupCacheFetchMode

获取或设置在启动时缓存获取模式。

public StartupCacheFetchMode StartupCacheFetchMode { get; set; }

Property Value

StartupCacheFetchMode

Remarks

此属性用于指定客户端在启动时如何缓存基础数据,并影响 Ready 事件的引发时机。
缓存基础数据包括服务器基本信息、频道、角色、频道权限重写、当前用户在服务器内的昵称。

SuppressUnknownDispatchWarnings

获取或设置是否不在接收到未知网关事件消息是输出警告。

public bool SuppressUnknownDispatchWarnings { get; set; }

Property Value

bool

UdpSocketProvider

获取或设置用于创建 UDP 客户端的委托。

public UdpSocketProvider UdpSocketProvider { get; set; }

Property Value

UdpSocketProvider

WebSocketProvider

获取或设置用于创建 WebSocket 客户端的委托。

public WebSocketProvider WebSocketProvider { get; set; }

Property Value

WebSocketProvider