4.2. メッセージの受信
このクライアントプログラムは <connection-url>
を使用してサーバーに接続し、ソース <address>
のレシーバーを作成し、終了するか <count>
メッセージに到達するまでメッセージを受信します。
例: メッセージの受信
namespace SimpleRecv { using System; using Amqp; 1 class SimpleRecv { static void Main(string[] args) { string url = (args.Length > 0) ? args[0] : 2 "amqp://guest:guest@127.0.0.1:5672"; string source = (args.Length > 1) ? args[1] : "examples"; 3 int count = (args.Length > 2) ? Convert.ToInt32(args[2]) : 10; 4 Address peerAddr = new Address(url); 5 Connection connection = new Connection(peerAddr); 6 Session session = new Session(connection); ReceiverLink receiver = new ReceiverLink(session, "recv-1", source);7 for (int i = 0; i < count; i++) { Message msg = receiver.Receive(); 8 receiver.Accept(msg); 9 Console.WriteLine("Received: " + msg.Body.ToString()); } receiver.Close(); 10 session.Close(); connection.Close(); } } }
- 1
using Amqp;
Amqp namespace で定義されたタイプをインポートします。AMQP は、ライブラリーファイル Amqp.Net.dll へのプロジェクト参照によって定義され、AMQ .NET に関連するすべてのクラス、インターフェース、および値タイプを提供します。- 2
- arg[0]
url
は、AMQP 接続のホストまたは仮想ホストのネットワークアドレスです。この文字列は、接続トランスポート、ユーザーとパスワードの認証情報、およびリモートホストの接続のポート番号を説明します。URL は、ブローカー、スタンドアロンピア、またはルーターネットワークの Ingress ポイントに対応できます。 - 3
- コマンドライン arg[1]
source
は、リモートホストのメッセージソースエンドポイントまたはリソースの名前です。 - 4
- コマンドライン arg[2]
count
は送信するメッセージ数です。 - 5
peerAddr
は、AMQP コネクションの作成に必要な構造です。- 6
- AMQP コネクションを作成します。
- 7
receiver
は、メッセージを受信できるクライアント ReceiverLink です。そのリンクは、任意に recv-1 と名付けられます。お使いの環境で意味を持つリンク名を使用し、ビジーなシステムでのトラフィックを特定するのに役立ちます。リンク名は制限されませんが、同じセッション内で一意である必要があります。- 8
- メッセージが受信されます。
- 9
- メッセージが許可されます。これにより、メッセージの所有権がピアから受信側に転送されます。
- 10
- すべてのメッセージを受信した後、プロトコルオブジェクトは正しい順序でシャットダウンされていきます。
サンプルの実行
サンプルプログラムを実行するには、コマンドラインでコンパイルして実行します。詳細は、3章スタートガイド を参照してください。
<install-dir>\bin\Debug>simple_recv "amqp://guest:guest@localhost" service_queue