4.2. メッセージの受信
このクライアントプログラムは <connection-url> を使用してサーバーに接続し、ソース <address> の受信側を作成し、終了するか、<count> メッセージに到達するまでメッセージを受信します。
例: メッセージの受信
namespace SimpleRecv
{
using System;
using Amqp;
class SimpleRecv
{
static void Main(string[] args)
{
string url = (args.Length > 0) ? args[0] :
"amqp://guest:guest@127.0.0.1:5672";
string source = (args.Length > 1) ? args[1] : "examples";
int count = (args.Length > 2) ? Convert.ToInt32(args[2]) : 10;
Address peerAddr = new Address(url);
Connection connection = new Connection(peerAddr);
Session session = new Session(connection);
ReceiverLink receiver = new ReceiverLink(session, "recv-1", source);
for (int i = 0; i < count; i++)
{
Message msg = receiver.Receive();
receiver.Accept(msg);
Console.WriteLine("Received: " + msg.Body.ToString());
}
receiver.Close();
session.Close();
connection.Close();
}
}
}
- 1
using Amqp;Amqp ネームスペースで定義されたタイプをインポートします。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