Table of Contents

Class BaseSocketClient

Namespace
HeyBox.WebSocket
Assembly
HeyBox.Net.WebSocket.dll

表示一个基于网关的客户端的抽象基类。

public abstract class BaseSocketClient : BaseHeyBoxClient, IHeyBoxClient, IDisposable
Inheritance
BaseSocketClient
Implements
Derived
Inherited Members

Fields

BaseConfig

获取此客户端使用的配置。

protected readonly HeyBoxSocketConfig BaseConfig

Field Value

HeyBoxSocketConfig

Properties

CurrentUser

获取登录到此客户端的当前用户;如果未登录,则为 null

public virtual SocketSelfUser? CurrentUser { get; protected set; }

Property Value

SocketSelfUser

Latency

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

public abstract int Latency { get; protected set; }

Property Value

int

Remarks

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

Rest

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

public abstract HeyBoxSocketRestClient Rest { get; }

Property Value

HeyBoxSocketRestClient

Rooms

获取当前用户所在的所有房间。

public abstract IReadOnlyCollection<SocketRoom> Rooms { get; }

Property Value

IReadOnlyCollection<SocketRoom>

Methods

GetChannel(ulong)

获取一个服务器频道。

public abstract SocketChannel? GetChannel(ulong id)

Parameters

id ulong

要获取的频道的 ID。

Returns

SocketChannel

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

GetDMChannel(uint)

获取一个私聊频道。

public abstract SocketDMChannel? GetDMChannel(uint userId)

Parameters

userId uint

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

Returns

SocketDMChannel

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

GetRoom(ulong)

获取一个房间。

public abstract SocketRoom? GetRoom(ulong id)

Parameters

id ulong

要获取的房间的 ID。

Returns

SocketRoom

与指定的 id 关联的实体;如果缓存中不存在指定的房间,则返回一个用于后续调用但不包含其他有效信息的房间实体。

GetUser(uint)

获取用户。

public abstract SocketUser? GetUser(uint id)

Parameters

id uint

要获取的用户的 ID。

Returns

SocketUser

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

Remarks

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

StartAsync()

启动客户端与黑盒语音之间的连接。

public abstract Task StartAsync()

Returns

Task

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

Remarks

当前方法会初始化客户端与黑盒语音之间的连接。

important

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

StopAsync()

停止客户端与黑盒语音之间的连接。

public abstract Task StopAsync()

Returns

Task

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

Events

ButtonClicked

当用户点击按钮时引发。

public event Func<SocketButtonClick, Task> ButtonClicked

Event Type

Func<SocketButtonClick, Task>

InteractionCreated

当交互被创建时引发,此事件涵盖了所有类型的交互。

public event Func<SocketInteraction, Task> InteractionCreated

Event Type

Func<SocketInteraction, Task>

JoinedRoom

当当前用户新加入服务器时引发。

public event Func<SocketRoom, Task> JoinedRoom

Event Type

Func<SocketRoom, Task>

Remarks

事件参数:

  1. SocketRoom 参数是当前用户新加入的服务器。

LeftRoom

当当前用户离开服务器时引发。

public event Func<SocketRoom, Task> LeftRoom

Event Type

Func<SocketRoom, Task>

Remarks

事件参数:

  1. SocketRoom 参数是当前用户离开的服务器。

ReactionAdded

当服务器内的消息上被添加了新的回应时引发。

public event Func<Cacheable<IUserMessage, ulong>, Cacheable<SocketTextChannel, ulong>, Cacheable<SocketRoomUser, uint>, SocketReaction, Task> ReactionAdded

Event Type

Func<Cacheable<IUserMessage, ulong>, Cacheable<SocketTextChannel, ulong>, Cacheable<SocketRoomUser, uint>, SocketReaction, Task>

Remarks

事件参数:

  1. Cacheable<TEntity, TId> 参数是被添加了回应的可缓存消息。如果缓存中存在此消息实体,那么该结构内包含该 IUserMessage 消息;否则,包含 ulong 消息 ID,以供按需下载实体。
  2. Cacheable<TEntity, TId> 参数是消息所在的频道。如果缓存中存在此频道实体,那么该结构内包含该 SocketTextChannel 频道;否则,包含 ulong 频道 ID,以供按需下载实体。
  3. Cacheable<TEntity, TId> 参数是添加了此回应的可缓存服务器用户。如果缓存中存在此服务器用户实体,那么该结构内包含该 SocketRoomUser 服务器用户;否则,包含 uint 用户 ID,以供按需下载实体。
  4. SocketReaction 参数是被添加的回应。

ReactionRemoved

当服务器内的消息上存在的回应被用户移除时引发。

public event Func<Cacheable<IUserMessage, ulong>, Cacheable<SocketTextChannel, ulong>, Cacheable<SocketRoomUser, uint>, SocketReaction, Task> ReactionRemoved

Event Type

Func<Cacheable<IUserMessage, ulong>, Cacheable<SocketTextChannel, ulong>, Cacheable<SocketRoomUser, uint>, SocketReaction, Task>

Remarks

事件参数:

  1. Cacheable<TEntity, TId> 参数是被移除了回应的可缓存消息。如果缓存中存在此消息实体,那么该结构内包含该 IUserMessage 消息;否则,包含 ulong 消息 ID,以供按需下载实体。
  2. Cacheable<TEntity, TId> 参数是消息所在的频道。如果缓存中存在此频道实体,那么该结构内包含该 SocketTextChannel 频道;否则,包含 ulong 频道 ID,以供按需下载实体。
  3. Cacheable<TEntity, TId> 参数是移除了此回应的可缓存服务器用户。如果缓存中存在此服务器用户实体,那么该结构内包含该 SocketRoomUser 服务器用户;否则,包含 uint 用户 ID,以供按需下载实体。
  4. SocketReaction 参数是被移除的回应。

SlashCommandExecuted

当用户使用斜线命令时引发。

public event Func<SocketSlashCommand, Task> SlashCommandExecuted

Event Type

Func<SocketSlashCommand, Task>

UserJoined

当用户加入房间时引发。

public event Func<SocketRoomUser, Task> UserJoined

Event Type

Func<SocketRoomUser, Task>

Remarks

事件参数:

  1. SocketRoomUser 参数是加入房间的房间用户。

UserLeft

当用户离开房间时引发。

public event Func<SocketRoomUser, Task> UserLeft

Event Type

Func<SocketRoomUser, Task>

Remarks

事件参数:

  1. SocketRoomUser 参数是离开房间的房间用户。