Table of Contents

Class KookSocketClient

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

表示一个基于网关的 KOOK 客户端。

public class KookSocketClient : BaseSocketClient, IKookClient, IDisposable
Inheritance
KookSocketClient
Implements
Derived
Inherited Members

Constructors

KookSocketClient()

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

public KookSocketClient()

KookSocketClient(KookSocketConfig)

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

public KookSocketClient(KookSocketConfig config)

Parameters

config KookSocketConfig

用于配置此客户端的配置对象。

Properties

ConnectionState

获取当前连接的状态。

public override ConnectionState ConnectionState { get; }

Property Value

ConnectionState

DMChannels

获取在此会话中存在的所有私聊频道。

public IReadOnlyCollection<SocketDMChannel> DMChannels { get; }

Property Value

IReadOnlyCollection<SocketDMChannel>

Remarks

warning

此属性不会包含在当前会话之外创建的私聊会话的私聊频道实体,如果此 Bot 刚刚启动,此属性可能会返回一个空集合。

Guilds

获取当前用户所在的所有服务器。

public override IReadOnlyCollection<SocketGuild> Guilds { get; }

Property Value

IReadOnlyCollection<SocketGuild>

Latency

获取到网关服务器的往返延迟估计值(以毫秒为单位)。

public override int Latency { get; protected set; }

Property Value

int

Remarks

此往返估计值源于心跳包的延迟,不代表诸如发送消息等操作的真实延迟。

Rest

获取一个与此客户端共享状态的仅限于 REST 的客户端。

public override KookSocketRestClient Rest { get; }

Property Value

KookSocketRestClient

Methods

DownloadBoostSubscriptionsAsync(IEnumerable<IGuild>?, RequestOptions?)

下载全部或指定服务器的服务器助力信息到缓存中。

public override Task DownloadBoostSubscriptionsAsync(IEnumerable<IGuild>? guilds = null, RequestOptions? options = null)

Parameters

guilds IEnumerable<IGuild>

要下载服务器助力信息的服务器。如果为 null,则下载所有可用的服务器。

options RequestOptions

发送请求时要使用的选项。

Returns

Task

Remarks

对于要下载服务器助力信息的服务器,当前用户在该服务器中必须具有 ManageGuild 权限。

DownloadUsersAsync(IEnumerable<IGuild>?, RequestOptions?)

下载全部或指定服务器的用户到缓存中。

public override Task DownloadUsersAsync(IEnumerable<IGuild>? guilds = null, RequestOptions? options = null)

Parameters

guilds IEnumerable<IGuild>

要下载用户的服务器。如果为 null,则下载所有可用的服务器。

options RequestOptions

发送请求时要使用的选项。

Returns

Task

一个表示异步下载操作的任务。

DownloadVoiceStatesAsync(IEnumerable<IGuild>?, RequestOptions?)

下载全部或指定服务器的语音状态到缓存中。

public override Task DownloadVoiceStatesAsync(IEnumerable<IGuild>? guilds = null, RequestOptions? options = null)

Parameters

guilds IEnumerable<IGuild>

要下载语音状态的服务器。如果为 null,则下载所有可用的服务器。

options RequestOptions

发送请求时要使用的选项。

Returns

Task

一个表示异步下载操作的任务。

GetChannel(ulong)

获取一个服务器频道。

public override SocketChannel? GetChannel(ulong id)

Parameters

id ulong

要获取的频道的 ID。

Returns

SocketChannel

与指定的 id 关联的频道;如果未找到,则返回 null

GetChannelAsync(ulong, RequestOptions?)

获取一个频道。

public Task<IChannel> GetChannelAsync(ulong id, RequestOptions? options = null)

Parameters

id ulong

频道的 ID。

options RequestOptions

发送请求时要使用的选项。

Returns

Task<IChannel>

一个表示异步获取操作的任务。任务的结果是具有指定 ID 的频道;若指定 ID 的频道不存在,则为 null

GetDMChannel(Guid)

获取一个私聊频道。

public override SocketDMChannel? GetDMChannel(Guid chatCode)

Parameters

chatCode Guid

私聊频道的聊天代码。

Returns

SocketDMChannel

具有指定聊天代码的私聊频道;如果未找到,则返回 null

GetDMChannel(ulong)

获取一个私聊频道。

public override SocketDMChannel? GetDMChannel(ulong userId)

Parameters

userId ulong

私聊频道中另一位用户的 ID。

Returns

SocketDMChannel

另一位用户具有指定用户 ID 的私聊频道;如果未找到,则返回 null

GetDMChannelAsync(Guid, RequestOptions?)

获取一个私聊频道。

public Task<IDMChannel> GetDMChannelAsync(Guid chatCode, RequestOptions? options = null)

Parameters

chatCode Guid

私聊频道的聊天代码。

options RequestOptions

发送请求时要使用的选项。

Returns

Task<IDMChannel>

一个表示异步获取操作的任务。任务的结果是具有指定聊天代码的私聊频道;若指定聊天代码的私聊频道不存在,则为 null

GetDMChannelsAsync(RequestOptions?)

获取当前会话中已创建的所有私聊频道。

public Task<IReadOnlyCollection<IDMChannel>> GetDMChannelsAsync(RequestOptions? options = null)

Parameters

options RequestOptions

发送请求时要使用的选项。

Returns

Task<IReadOnlyCollection<IDMChannel>>

一个表示异步获取操作的任务。任务的结果是当前会话中已创建的所有私聊频道。

Remarks

warning

此方法不会返回当前会话之外已创建的私聊频道。如果客户端刚刚启动,这可能会返回一个空集合。

GetGuild(ulong)

获取一个服务器。

public override SocketGuild? GetGuild(ulong id)

Parameters

id ulong

要获取的服务器的 ID。

Returns

SocketGuild

与指定的 id 关联的服务器;如果未找到,则返回 null

GetUser(string, string)

获取用户。

public override SocketUser? GetUser(string username, string identifyNumber)

Parameters

username string

用户的名称。

identifyNumber string

用户的识别号。

Returns

SocketUser

与指定的名称和识别号关联的用户;如果未找到,则返回 null

Remarks

此方法可能返回 null,因为此方法仅会返回网关缓存中存在的用户,如果在当前 Bot 登录会话中,要获取的用户未引发过任何事件,那么该用户实体则不会存在于缓存中。

GetUser(ulong)

获取用户。

public override SocketUser? GetUser(ulong id)

Parameters

id ulong

要获取的用户的 ID。

Returns

SocketUser

与指定的 id 关联的用户;如果未找到,则返回 null

Remarks

此方法可能返回 null,因为此方法仅会返回网关缓存中存在的用户,如果在当前 Bot 登录会话中,要获取的用户未引发过任何事件,那么该用户实体则不会存在于缓存中。

GetUserAsync(ulong, RequestOptions?)

获取一个用户。

public Task<IUser> GetUserAsync(ulong id, RequestOptions? options = null)

Parameters

id ulong

用户的 ID。

options RequestOptions

发送请求时要使用的选项。

Returns

Task<IUser>

一个表示异步获取操作的任务。任务的结果是具有指定 ID 的用户;若指定 ID 的用户不存在,则为 null

StartAsync()

启动客户端与 KOOK 之间的连接。

public override Task StartAsync()

Returns

Task

一个表示异步启动操作的任务。

Remarks

当前方法会初始化客户端与 KOOK 之间的连接。

important

此方法会在调用后立即返回,因为它会在另一个线程上初始化连接。

StopAsync()

停止客户端与 KOOK 之间的连接。

public override Task StopAsync()

Returns

Task

一个表示异步停止操作的任务。

Events

Connected

当连接到 KOOK 网关时引发。

public event Func<Task> Connected

Event Type

Func<Task>

Disconnected

当与 KOOK 网关断开连接时引发。

public event Func<Exception, Task> Disconnected

Event Type

Func<Exception, Task>

LatencyUpdated

当网关延迟已更新时引发。

public event Func<int, int, Task> LatencyUpdated

Event Type

Func<int, int, Task>

Remarks

事件参数:

  1. int 参数是更新前的延迟(毫秒)。
  2. int 参数是更新后的延迟(毫秒)。

Ready

当此 Bot 准备就绪以供用户代码访问时引发。

public event Func<Task> Ready

Event Type

Func<Task>

Remarks

此事件引发的时机可由 StartupCacheFetchMode 配置指定。