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

SubscriptionClient 类

定义

SubscriptionClient 可用于与服务总线订阅的所有基本交互。

public class SubscriptionClient : Microsoft.Azure.ServiceBus.ClientEntity, Microsoft.Azure.ServiceBus.ISubscriptionClient
type SubscriptionClient = class
    inherit ClientEntity
    interface ISubscriptionClient
    interface IReceiverClient
    interface IClientEntity
Public Class SubscriptionClient
Inherits ClientEntity
Implements ISubscriptionClient
继承
SubscriptionClient
实现

示例

创建新的 SubscriptionClient

ISubscriptionClient subscriptionClient = new SubscriptionClient(
    namespaceConnectionString,
    topicName,
    subscriptionName,
    ReceiveMode.PeekLock,
    RetryExponential);

注册消息处理程序,该处理程序将在每次收到消息时调用。

subscriptionClient.RegisterMessageHandler(
       async (message, token) =>
       {
           // Process the message
           Console.WriteLine($"Received message: SequenceNumber:{message.SystemProperties.SequenceNumber} Body:{Encoding.UTF8.GetString(message.Body)}");

           // Complete the message so that it is not received again.
           // This can be done only if the subscriptionClient is opened in ReceiveMode.PeekLock mode.
           await subscriptionClient.CompleteAsync(message.SystemProperties.LockToken);
       },
       async (exceptionEvent) =>
       {
           // Process the exception
           Console.WriteLine("Exception = " + exceptionEvent.Exception);
           return Task.CompletedTask;
       });

注解

它使用 AMQP 协议与服务总线通信。 用于 MessageReceiver 高级功能集。

构造函数

SubscriptionClient(ServiceBusConnection, String, String, ReceiveMode, RetryPolicy)

在给定的 上创建订阅客户端的新实例 ServiceBusConnection

SubscriptionClient(ServiceBusConnectionStringBuilder, String, ReceiveMode, RetryPolicy)

实例化新的 SubscriptionClient 以对订阅执行操作。

SubscriptionClient(String, String, String, ITokenProvider, TransportType, ReceiveMode, RetryPolicy)

使用指定的终结点、实体路径和令牌提供程序创建订阅客户端的新实例。

SubscriptionClient(String, String, String, ReceiveMode, RetryPolicy)

实例化新的 SubscriptionClient 以对订阅执行操作。

属性

ClientId

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

(继承自 ClientEntity)
IsClosedOrClosing

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

(继承自 ClientEntity)
OperationTimeout

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

OwnsConnection

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

(继承自 ClientEntity)
Path

获取订阅客户端的格式化路径。

PrefetchCount

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

ReceiveMode

获取 ReceiveMode SubscriptionClient 的 。

RegisteredPlugins

获取此 SubscriptionClient 当前注册的插件的列表。

RetryPolicy

获取客户端 RetryPolicy 上定义的 。

(继承自 ClientEntity)
ServiceBusConnection

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

SubscriptionName

获取订阅的名称。

TopicPath

获取相应主题的路径。

方法

AbandonAsync(String, IDictionary<String,Object>)

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

AddRuleAsync(RuleDescription)

将规则添加到当前订阅,以筛选从主题到订阅的消息。

AddRuleAsync(String, Filter)

将规则添加到当前订阅,以筛选从主题到订阅的消息。

CloseAsync()

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

(继承自 ClientEntity)
CompleteAsync(String)

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

DeadLetterAsync(String)

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

DeadLetterAsync(String, IDictionary<String,Object>)

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

DeadLetterAsync(String, String, String)

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

GetRulesAsync()

获取与订阅关联的所有规则。

OnClosingAsync()

SubscriptionClient 可用于与服务总线订阅的所有基本交互。

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

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

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

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

RegisterPlugin(ServiceBusPlugin)

ServiceBusPlugin注册用于从服务总线接收消息的 。

RegisterSessionHandler(Func<IMessageSession,Message,CancellationToken,Task>, Func<ExceptionReceivedEventArgs,Task>)

从队列中连续接收会话消息。 注册消息处理程序并启动新线程以接收会话消息。 此处理程序 (Func<T1,T2,T3,TResult> 每次订阅客户端收到新消息时等待) 。

RegisterSessionHandler(Func<IMessageSession,Message,CancellationToken,Task>, SessionHandlerOptions)

从队列中连续接收会话消息。 注册消息处理程序并启动新线程以接收会话消息。 此处理程序 (Func<T1,T2,T3,TResult> 每次订阅客户端收到新消息时等待) 。

RemoveRuleAsync(String)

删除由 ruleName标识的订阅上的规则。

ThrowIfClosed()

如果对象为 Closing,则引发 OperationCanceledException。

(继承自 ClientEntity)
UnregisterMessageHandlerAsync(TimeSpan)

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

UnregisterPlugin(String)

取消注册 ServiceBusPlugin

UnregisterSessionHandlerAsync(TimeSpan)

如果注册了活动会话处理程序,请从接收方注销会话处理程序。 此操作等待正在进行的接收和会话处理操作完成,并取消注册以前注册的会话处理程序上的未来接收。

适用于