Table of Contents

Class BaseMessageQueue

Namespace
Kook.Net.Queue
Assembly
Kook.Net.Core.dll

表示一个通用的消息队列抽象类。

public abstract class BaseMessageQueue : IMessageQueue
Inheritance
BaseMessageQueue
Implements
Derived
Inherited Members

Constructors

BaseMessageQueue(Func<int, JsonElement, Task>)

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

protected BaseMessageQueue(Func<int, JsonElement, Task> eventHandler)

Parameters

eventHandler Func<int, JsonElement, Task>

用于处理消息的事件处理程序。

Properties

EventHandler

获取消息队列的事件处理程序。

protected Func<int, JsonElement, Task> EventHandler { get; }

Property Value

Func<int, JsonElement, Task>

HandleSequence

消息队列是否处理事件顺序。

public virtual bool HandleSequence { get; }

Property Value

bool

Remarks

如果此队列实现维护事件的顺序,则应将此属性设置为 true,网关线程会在 EventHandler 调用时更新所收到的最新事件序号。否则,网关线程会在 EnqueueAsync(JsonElement, int, CancellationToken) 前就更新最新事件序号。

Methods

EnqueueAsync(JsonElement, int, CancellationToken)

将网关消息添加到队列中。

public abstract Task EnqueueAsync(JsonElement payload, int sequence, CancellationToken cancellationToken = default)

Parameters

payload JsonElement

网关消息的有效负载。

sequence int

网关消息的序号。

cancellationToken CancellationToken

用于取消该操作的取消令牌。

Returns

Task

表示一个异步入队操作的任务。

OnReconnectRequested(ReconnectRequestedEventArgs)

引发 ReconnectRequested 事件。

protected virtual void OnReconnectRequested(ReconnectRequestedEventArgs e)

Parameters

e ReconnectRequestedEventArgs

事件参数。

StartAsync(CancellationToken)

启动消息队列的处理。

public abstract Task StartAsync(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

用于取消该操作的取消令牌。

Returns

Task

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

StopAsync(CancellationToken)

停止消息队列的处理。

public abstract Task StopAsync(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

用于取消该操作的取消令牌。

Returns

Task

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

Events

ReconnectRequested

当消息队列请求网关重连时发生(如缓冲溢出、等待超时)。订阅方应在网关线程上调用重连逻辑(如 Connection.Error(e.Exception))。

public event EventHandler<ReconnectRequestedEventArgs>? ReconnectRequested

Event Type

EventHandler<ReconnectRequestedEventArgs>