Class KookSocketConfig
表示一个用于 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
RtcpIntervalMilliseconds
获取语音客户端 RTP 连接中发送 RTCP 数据报的时间间隔(毫秒)。
public const int RtcpIntervalMilliseconds = 5000
Field Value
Properties
AlwaysDownloadBoostSubscriptions
获取或设置是否在服务器可用时始终下载所有服务器的所有服务器助力信息。
public bool AlwaysDownloadBoostSubscriptions { get; set; }
Property Value
Remarks
note
当此属性为 true 时,客户端将在启动时下载所有服务器的所有服务器助力信息,并在引发
GuildUpdated 事件时,当 BoostSubscriptionCount
发生更改时,也会重新下载所有服务器的所有服务器助力信息。
对于大型服务器,启用此选项可能会导致性能问题。调用
DownloadBoostSubscriptionsAsync(IEnumerable<IGuild>?, RequestOptions?)
可以按需下载服务器的所有服务器助力信息。
AlwaysDownloadUsers
获取或设置是否在服务器可用时始终下载所有用户。
public bool AlwaysDownloadUsers { get; set; }
Property Value
Remarks
note
对于大型服务器,启用此选项可能会导致性能问题。调用 DownloadUsersAsync(IEnumerable<IGuild>?, RequestOptions?) 可以按需下载服务器用户列表。
AlwaysDownloadVoiceStates
获取或设置是否在服务器可用时始终下载所有语音状态。
public bool AlwaysDownloadVoiceStates { get; set; }
Property Value
Remarks
note
对于大型服务器,启用此选项可能会导致性能问题。调用 DownloadVoiceStatesAsync(IEnumerable<IGuild>?, RequestOptions?) 可以按需下载服务器语音状态。
AudioClientIdleTimeout
获取或设置音频客户端被视为空闲的超时时间间隔(毫秒)。
public int AudioClientIdleTimeout { get; set; }
Property Value
AutoLogoutBeforeLogin
在登录前是否先退出登录。
public bool AutoLogoutBeforeLogin { get; set; }
Property Value
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
AutoUpdateRolePositions
获取或设置是否在引发 GuildUpdated 事件时通过 API 更新服务器角色位置。
public bool AutoUpdateRolePositions { get; set; }
Property Value
ConnectionTimeout
获取或设置连接到网关时的超时时间间隔(毫秒)。
public int ConnectionTimeout { get; set; }
Property Value
GatewayHost
获取或设置要连接的网关地址。如果为 null,则客户端将会通过 API 请求获取网关地址。
public string? GatewayHost { get; set; }
Property Value
HandlerTimeout
获取或设置阻塞网关线程的事件处理程序的超时时间间隔(毫秒),超过此时间间隔的阻塞网关线程的事件处理程序会被日志记录警告。将此属性设置为 null 将禁用此检查。
public int? HandlerTimeout { get; set; }
Property Value
- int?
HeartbeatIntervalMilliseconds
获取网关发送心跳包的时间间隔(毫秒)。
public int HeartbeatIntervalMilliseconds { get; }
Property Value
JoinedGuildDataFetchingRetryDelay
获取或设置获取新加入服务器数据每次重试之前所等待的时间间隔(毫秒)。
public int JoinedGuildDataFetchingRetryDelay { get; set; }
Property Value
Exceptions
- ArgumentException
时间间隔不能小于
0。
- See Also
LargeNumberOfGuildsThreshold
获取或设置被视为加入大量服务器的阈值数量。
public uint LargeNumberOfGuildsThreshold { get; set; }
Property Value
- See Also
MaxJoinedGuildDataFetchingRetryTimes
获取或设置获取新加入服务器数据的最大重试次数。
public int MaxJoinedGuildDataFetchingRetryTimes { get; set; }
Property Value
Remarks
KOOK API 无法立即返回刚刚新加入的服务器数据,因此此属性用于控制获取加入的服务器数据的最大重试次数。 每次重试前都会等待 JoinedGuildDataFetchingRetryDelay 毫秒。将当前属性设置为 0 或负值以禁用重试。
MessageCacheSize
获取或设置应在缓存中保留的每个频道的消息数量。将此属性设置为零将完全禁用消息缓存。
public int MessageCacheSize { get; set; }
Property Value
MessageQueueProvider
获取或设置用于创建消息队列的委托。
public MessageQueueProvider MessageQueueProvider { get; set; }
Property Value
SmallNumberOfGuildsThreshold
获取或设置被视为加入少量服务器的阈值数量。
public uint SmallNumberOfGuildsThreshold { get; set; }
Property Value
- See Also
StartupCacheFetchMode
获取或设置在启动时缓存获取模式。
public StartupCacheFetchMode StartupCacheFetchMode { get; set; }
Property Value
Remarks
此属性用于指定客户端在启动时如何缓存基础数据,并影响 Ready 事件的引发时机。
缓存基础数据包括服务器基本信息、频道、角色、频道权限重写、当前用户在服务器内的昵称。
SuppressUnknownDispatchWarnings
获取或设置是否不在接收到未知网关事件消息是输出警告。
public bool SuppressUnknownDispatchWarnings { get; set; }
Property Value
UdpSocketProvider
获取或设置用于创建 UDP 客户端的委托。
public UdpSocketProvider UdpSocketProvider { get; set; }
Property Value
WebSocketProvider
获取或设置用于创建 WebSocket 客户端的委托。
public WebSocketProvider WebSocketProvider { get; set; }