Table of Contents

Class HeyBoxSocketClient

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

表示一个基于网关的黑盒语音客户端。

public class HeyBoxSocketClient : BaseSocketClient, IHeyBoxClient, IDisposable
Inheritance
HeyBoxSocketClient
Implements
Inherited Members

Constructors

HeyBoxSocketClient()

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

public HeyBoxSocketClient()

HeyBoxSocketClient(HeyBoxSocketConfig)

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

public HeyBoxSocketClient(HeyBoxSocketConfig config)

Parameters

config HeyBoxSocketConfig

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

Properties

ConnectionState

获取当前连接的状态。

public override ConnectionState ConnectionState { get; }

Property Value

ConnectionState

DMChannels

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

public IReadOnlyCollection<SocketDMChannel> DMChannels { get; }

Property Value

IReadOnlyCollection<SocketDMChannel>

Remarks

warning

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

Latency

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

public override int Latency { get; protected set; }

Property Value

int

Remarks

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

Rest

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

public override HeyBoxSocketRestClient Rest { get; }

Property Value

HeyBoxSocketRestClient

Rooms

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

public override IReadOnlyCollection<SocketRoom> Rooms { get; }

Property Value

IReadOnlyCollection<SocketRoom>

Methods

CreateDMChannel(uint)

创建一个用于与指定用户收发私信的频道。

public SocketDMChannel CreateDMChannel(uint userId)

Parameters

userId uint

Returns

SocketDMChannel

与指定用户相关的私信频道。

GetChannel(ulong)

获取一个服务器频道。

public override SocketChannel? GetChannel(ulong id)

Parameters

id ulong

要获取的频道的 ID。

Returns

SocketChannel

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

GetDMChannel(uint)

获取一个私聊频道。

public override SocketDMChannel? GetDMChannel(uint userId)

Parameters

userId uint

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

Returns

SocketDMChannel

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

GetRoom(ulong)

获取一个房间。

public override SocketRoom? GetRoom(ulong id)

Parameters

id ulong

要获取的房间的 ID。

Returns

SocketRoom

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

GetUser(uint)

获取用户。

public override SocketUser? GetUser(uint id)

Parameters

id uint

要获取的用户的 ID。

Returns

SocketUser

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

Remarks

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

StartAsync()

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

public override Task StartAsync()

Returns

Task

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

Remarks

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

important

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

StopAsync()

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

public override Task StopAsync()

Returns

Task

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

Events

Connected

当连接到黑盒语音网关时引发。

public event Func<Task> Connected

Event Type

Func<Task>

Disconnected

当与黑盒语音网关断开连接时引发。

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>