你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

IMessageReceiver 接口

定义

MessageReceiver 可用于从队列和订阅接收消息并确认它们。

public interface IMessageReceiver : Microsoft.Azure.ServiceBus.Core.IReceiverClient
type IMessageReceiver = interface
    interface IReceiverClient
    interface IClientEntity
Public Interface IMessageReceiver
Implements IReceiverClient
派生
实现

示例

创建新的 MessageReceiver 以接收来自订阅的消息

IMessageReceiver messageReceiver = new MessageReceiver(
    namespaceConnectionString,
    EntityNameHelper.FormatSubscriptionPath(topicName, subscriptionName),
    ReceiveMode.PeekLock);

从订阅接收消息。

var message = await messageReceiver.ReceiveAsync();
await messageReceiver.CompleteAsync(message.SystemProperties.LockToken);

注解

MessageReceiver 提供在 或 SubscriptionClientQueueClient找不到的高级功能。 例如, ReceiveAsync()它允许按需接收消息,但也要求使用 RenewLockAsync(Message)手动续订锁。

属性

ClientId

获取用于标识此客户端的 ID。 这可用于关联日志和异常。

(继承自 IClientEntity)
IsClosedOrClosing

如果客户端已关闭或关闭,则返回 true。

(继承自 IClientEntity)
LastPeekedSequenceNumber

获取上次查看的消息的序列号。

OperationTimeout

持续时间过后,单个操作将超时。

(继承自 IClientEntity)
OwnsConnection

如果拥有连接,则返回 true;如果共享连接,则返回 false。

(继承自 IClientEntity)
Path

获取实体路径。

(继承自 IClientEntity)
PrefetchCount

在应用程序使用 Receive 请求消息时和之前,预提取旨在使消息随时可供本地检索,从而加速消息流。 设置非零值预提取预提取消息数。 将值设置为零会关闭预提取。 默认值为 0。

(继承自 IReceiverClient)
ReceiveMode

ReceiveMode获取当前接收器的 。

(继承自 IReceiverClient)
RegisteredPlugins

获取此客户端当前注册的插件的列表。

(继承自 IClientEntity)
ServiceBusConnection

服务总线命名空间的连接对象。

(继承自 IClientEntity)

方法

AbandonAsync(String, IDictionary<String,Object>)

Message使用锁令牌放弃 。 这会使消息再次可供处理。

(继承自 IReceiverClient)
CloseAsync()

关闭客户端。 关闭它打开的连接。

(继承自 IClientEntity)
CompleteAsync(IEnumerable<String>)

使用锁令牌列表完成一系列 Message 操作。 这会从服务中删除消息。

CompleteAsync(String)

Message使用锁令牌完成 。 这会从队列中删除消息。

(继承自 IReceiverClient)
DeadLetterAsync(String, IDictionary<String,Object>)

将消息移动到死信子队列。

(继承自 IReceiverClient)
DeadLetterAsync(String, String, String)

将消息移动到死信子队列。

(继承自 IReceiverClient)
DeferAsync(String, IDictionary<String,Object>)

指示接收方希望延迟消息的处理。

PeekAsync()

在不更改接收方或消息源的状态的情况下提取下一个活动消息。

PeekAsync(Int32)

在不更改接收方或消息源的状态的情况下提取下一批活动消息。

PeekBySequenceNumberAsync(Int64)

在不更改接收方或消息源的状态的情况下异步读取下一条消息。

PeekBySequenceNumberAsync(Int64, Int32)

速览一批消息。

ReceiveAsync()

从使用 ReceiveMode 模式定义的Path实体接收消息。

ReceiveAsync(Int32)

从使用 ReceiveMode 模式定义的Path实体接收的最大maxMessageCount消息数。

ReceiveAsync(Int32, TimeSpan)

从使用 ReceiveMode 模式定义的Path实体接收的最大maxMessageCount消息数。

ReceiveAsync(TimeSpan)

从使用 ReceiveMode 模式定义的Path实体接收消息。

ReceiveDeferredMessageAsync(IEnumerable<Int64>)

接收 IList<T> 由 标识的延迟消息的 sequenceNumbers

ReceiveDeferredMessageAsync(Int64)

接收由 sequenceNumber标识的特定延迟消息。

RegisterMessageHandler(Func<Message,CancellationToken,Task>, Func<ExceptionReceivedEventArgs,Task>)

从实体连续接收消息。 注册消息处理程序并启动新线程以接收消息。 每当接收方收到新消息时,此处理程序 (Func<T1,T2,TResult> 等待) 。

(继承自 IReceiverClient)
RegisterMessageHandler(Func<Message,CancellationToken,Task>, MessageHandlerOptions)

从实体连续接收消息。 注册消息处理程序并启动新线程以接收消息。 每当接收方收到新消息时,此处理程序 (Func<T1,T2,TResult> 等待) 。

(继承自 IReceiverClient)
RegisterPlugin(ServiceBusPlugin)

ServiceBusPlugin注册要用于此客户端的 。

(继承自 IClientEntity)
RenewLockAsync(Message)

续订消息上的锁。 将根据队列中指定的设置续订锁。

RenewLockAsync(String)

续订消息上的锁。 将根据队列中指定的设置续订锁。 UTC 格式的新锁令牌到期日期和时间。

UnregisterMessageHandlerAsync(TimeSpan)

如果注册了活动消息处理程序,则从接收方取消注册消息处理程序。 此操作等待正在进行的接收和消息处理操作完成,然后取消注册以前注册的消息处理程序上将来的接收。

(继承自 IReceiverClient)
UnregisterPlugin(String)

取消注册 ServiceBusPlugin

(继承自 IClientEntity)

适用于

另请参阅