第4章 例

本章では、サンプルプログラムで AMQ .NET を使用する方法について説明します。

詳細は、AMQ .NET サンプルスイート および AMQP.Net Lite の例を参照してください。

4.1. メッセージの送信

このクライアントプログラムは、<connection-url> を使用してサーバーに接続します。ターゲット <address> の送信側は <message-body> が含まれるメッセージを送信し、接続を閉じて終了します。

例: メッセージの送信

namespace SimpleSend
{
    using System;
    using Amqp;                                                                 1

    class SimpleSend
    {
        static void Main(string[] args)
        {
            string    url = (args.Length > 0) ? args[0] :                       2
                "amqp://guest:guest@127.0.0.1:5672";
            string target = (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);
            SenderLink     sender = new SenderLink(session, "send-1", target);  7

            for (int i = 0; i < count; i++)
            {
                Message msg = new Message("simple " + i);                       8
                sender.Send(msg);                                               9
                Console.WriteLine("Sent: " + msg.Body.ToString());
            }

            sender.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] target は、リモートホストのメッセージ宛先エンドポイントまたはリソースの名前です。
4
コマンドライン arg[2] count は送信するメッセージ数です。
5
peerAddr は、AMQP コネクションの作成に必要な構造です。
6
AMQP コネクションを作成します。
7
sender は、メッセージが送信されることができるクライアント SenderLink です。リンクは、任意に send-1 と命名します。お使いの環境で意味を持つリンク名を使用し、ビジーなシステムでのトラフィックを特定するのに役立ちます。リンク名は制限されませんが、同じセッション内で一意である必要があります。
8
メッセージ送信ループでは、新しいメッセージが作成されます。
9
メッセージは AMQP ピアに送信されます。
10
すべてのメッセージが送信された後、プロトコルオブジェクトは正しい順序でシャットダウンされていきます。

サンプルの実行

サンプルプログラムを実行するには、コマンドラインでコンパイルして実行します。詳細は、3章スタートガイド を参照してください。

<install-dir>\bin\Debug>simple_send "amqp://guest:guest@localhost" service_queue