Class BaseMessageQueue
表示一个通用的消息队列抽象类。
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
eventHandlerFunc<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
Remarks
如果此队列实现维护事件的顺序,则应将此属性设置为 true,网关线程会在 EventHandler
调用时更新所收到的最新事件序号。否则,网关线程会在 EnqueueAsync(JsonElement, int, CancellationToken)
前就更新最新事件序号。
Methods
EnqueueAsync(JsonElement, int, CancellationToken)
将网关消息添加到队列中。
public abstract Task EnqueueAsync(JsonElement payload, int sequence, CancellationToken cancellationToken = default)
Parameters
payloadJsonElement网关消息的有效负载。
sequenceint网关消息的序号。
cancellationTokenCancellationToken用于取消该操作的取消令牌。
Returns
- Task
表示一个异步入队操作的任务。
OnReconnectRequested(ReconnectRequestedEventArgs)
引发 ReconnectRequested 事件。
protected virtual void OnReconnectRequested(ReconnectRequestedEventArgs e)
Parameters
eReconnectRequestedEventArgs事件参数。
StartAsync(CancellationToken)
启动消息队列的处理。
public abstract Task StartAsync(CancellationToken cancellationToken = default)
Parameters
cancellationTokenCancellationToken用于取消该操作的取消令牌。
Returns
- Task
表示一个异步启动操作的任务。
StopAsync(CancellationToken)
停止消息队列的处理。
public abstract Task StopAsync(CancellationToken cancellationToken = default)
Parameters
cancellationTokenCancellationToken用于取消该操作的取消令牌。
Returns
- Task
表示一个异步停止操作的任务。
Events
ReconnectRequested
当消息队列请求网关重连时发生(如缓冲溢出、等待超时)。订阅方应在网关线程上调用重连逻辑(如 Connection.Error(e.Exception))。
public event EventHandler<ReconnectRequestedEventArgs>? ReconnectRequested