.Netでトピックを送受信する

1つのトピックと2つのサブスクリプションを作成していない人はこちらから作成してください

SDKをインストールする

NugetからWindowsAzure.ServiceBusと検索してインストールします。

ちなみにUniversal Windows PlatformはSDKが対応していないためインストールできません。

接続文字列を取得する

接続ポリシーを作成します。

Service Busのトピックを選択し、からポリシーを新しくつくります。

接続情報をクリックします。

ここをクリックして構成をおします。

共有アクセスポリシー名を「testtopicpolicy」とし、アクセス権限を管理、送信、リッスンとします。

ポリシーを作成するとトピックの接続情報を取得できます。

ここに書いてあるtesttopicpolicyの値をコピーしておきます。

受信する

接続文字列を使ってSubscriptionClientを作成します。

第二引数はTopicの名前、第三引数はSubscriptionの名前を設定します。

OnMessageメソッドでトピックが送信されたときのデリゲートを取得できます。

今回は2つのサブスクリプションをそれぞれ別のクライアントで受信することとします。

var client1 = SubscriptionClient.CreateFromConnectionString("{connection string}");
    , "testgaritopic","testsubscription");
client1.OnMessage((message)=>
{
    Console.WriteLine("Client1="+message.GetBody<string>());
});

var client2 = SubscriptionClient.CreateFromConnectionString("{connection string}");
    , "testgaritopic", "testsubscription2");
client2.OnMessage((message) =>
{
    Console.WriteLine("Client2=" + message.GetBody<string>());
});

送信する

TopicClientを取得します。

BrokeredMessageクラスを作成し、Topicメッセージを作成します。

そしてSendAsyncメソッドでメッセージを送信します。

var client = TopicClient.CreateFromConnectionString("{connection string}");
    , "testgaritopic");

var message = new BrokeredMessage("hoge");
await client.SendAsync(message);

メッセージを送受信できました。

Azure Service Busまとめ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください