如何将Azure Service Bus主题订阅中的消息订阅到Web API?

时间:2018-09-06 20:14:00

标签: azure asp.net-core-webapi azure-servicebus-topics

我们有多个webapi(微服务)。为了在这些微服务之间进行通信,我们使用Azure服务总线Topic \ Subscription。 webapi控制器如何获取消息订阅,以便api可以处理消息并插入数据库。我不想使用任何天蓝色函数。我想在我的webapi(直接使用微服务)中订阅消息。

1 个答案:

答案 0 :(得分:1)

问候!

您可以为主题创建客户端以订阅消息,并在完成必要的过程后将选项设置为完成。 请找到以下示例代码,在这里您可以从主题中阅读订阅消息。

您可以使用WindowsAzure.ServiceBus -Nuget软件包

示例代码:

using Microsoft.ServiceBus.Messaging;
using Microsoft.ServiceBus;
var con = "your connection string for the topic";
var topic = "your topic name";
var subclient = SubscriptionClient.CreateFromConnectionString(con, topic, "yourSubscriptionName");

OnMessageOptions options = new OnMessageOptions();
options.AutoComplete = false;
client.OnMessage(message =>
{
Console.WriteLine("Message:" + message.GetBody<string>());
message.Complete();
}, options);

您可以将其放在单独的方法中,并根据需要使用。 要进行轮询,您可以创建一个网络作业,也可以放置触发网络api的代码,以便它可以同时轮询消息。

我希望这会有所帮助,干杯!! 苏拉杰·雷万卡